Doc generation broken using json file is broken due to upstream ESM/CJS changes

Describe the bug
Doc generation broken using json file is broken. This appears to be due to a new upstream release https://github.com/openapi-contrib/openapi-schema-to-json-schema/releases/tag/v3.3.0
How to Reproduce
Repo with minimal reproducible bug:
https://github.com/hrkeni/asyncapi-generator-esm-bug
Clone and run npm run gen-docs
><EMAIL_ADDRESS>gen-docs
> ag asyncapi.json @asyncapi/html-template --force-write -o ./public

/home/keni/oss/asyncapi-generator-esm-bug/node_modules/@openapi-contrib/openapi-schema-to-json-schema/dist/cjs/lib/converters/schema.js:8
const lodash_es_1 = require("lodash-es");
                    ^

Error [ERR_REQUIRE_ESM]: require() of ES Module /home/keni/oss/asyncapi-generator-esm-bug/node_modules/lodash-es/lodash.js from<EMAIL_ADDRESS>not supported.
Instead change the require of lodash.js in<EMAIL_ADDRESS>to a dynamic import() which is available in all CommonJS modules.
    at Object.<anonymous> (/home/keni/oss/asyncapi-generator-esm-bug/node_modules/@openapi-contrib/openapi-schema-to-json-schema/dist/cjs/lib/converters/schema.js:8:21)
    at Object.<anonymous> (/home/keni/oss/asyncapi-generator-esm-bug/node_modules/@openapi-contrib/openapi-schema-to-json-schema/dist/cjs/lib/convert.js:7:34)
    at Object.<anonymous> (/home/keni/oss/asyncapi-generator-esm-bug/node_modules/@openapi-contrib/openapi-schema-to-json-schema/dist/cjs/index.js:8:19)
    at Object.<anonymous> (/home/keni/oss/asyncapi-generator-esm-bug/node_modules/@asyncapi/openapi-schema-parser/index.js:1:22)
    at Object.<anonymous> (/home/keni/oss/asyncapi-generator-esm-bug/node_modules/@asyncapi/generator/lib/generator.js:10:29)
    at Object.<anonymous> (/home/keni/oss/asyncapi-generator-esm-bug/node_modules/@asyncapi/generator/cli.js:8:19) {
  code: 'ERR_REQUIRE_ESM'
}

Expected behavior
Dependencies should be resolved correctly

Thanks for the issue!
Seems like we need to freeze v3.2:  https://github.com/openapi-contrib/openapi-schema-to-json-schema/issues/54
It needs to be done in https://github.com/asyncapi/openapi-schema-parser
@hrkeni would you be able to do that?

@jonaslagoni Happily. Thanks for the suggested fix.

we just got hit by this in production as well
shouldn't all dependencies used be locked to a specific version?
the way is ATM, not only could this happen again with any other dependency but it also prevents reproducible builds

shouldn't all dependencies used be locked to a specific version?

Yes, but how that is solved depends on if we use npm ci and a package.json/package.lock file or if we do npx -p @asyncapi/cli.
This error scenario is one of the weaknesses of the npx command. :)
I fixed this on my end by using the npm ci && asyncapi pattern instead.

hey folks, how are you install CLI? npm? or some other manager?
package-lock.json is locked to 3.1 so 3.3 should not be installed, unless you are using some different tool to install than npm.
@Gyllsdorff you mean npx ignores lock file?

@Gyllsdorff you mean npx ignores lock file?

npx ignores both the lock file, the local npm cache and the globally installed modules. The core value proposition of npx (compared to npm) is that it can be run in whatever folder and context you want to without relying on additional files.
https://www.npmjs.com/package/clear-npx-cache
https://stackoverflow.com/questions/63510325/how-can-i-clear-the-central-cache-for-npx

I think the only way to ensure modules are in sync with package-lock.json is npm ci https://docs.npmjs.com/cli/v9/commands/npm-ci

Same issue here ; my pipeline don't succeed anymore

Bot closed the issue but there are issues with GitHub Actions
Update - Actions is now experiencing degraded availability. We are still investigating and will provide an update when we have one.
Mar 29, 2023 - 14:43 UTC
Investigating - We are investigating reports of degraded performance for Actions.
Mar 29, 2023 - 14:21 UTC

I'll keep you posted when you can actually check if issue is fixed.

npx -p @asyncapi/cli asyncapi generate fromTemplate <other stuff> works for me now.

I can confirm that my original issue is fixed now

The problem is that the package-lock.json on the generator repo target a 2.0.1 version
  "@asyncapi/openapi-schema-parser": {
      "version": "2.0.1",
      "resolved"<EMAIL_ADDRESS>      "integrity": "sha512-algbtdM1gcAOa8+V8kp7WeBhdaNac82jmZUXx8YjyNfRVo02N2juDrjeBAGJd+FNva9Mb4MM7qfkJoAFpTL5VQ==",
      "requires": {
        "@openapi-contrib/openapi-schema-to-json-schema": "^3.0.0"
      }
    },

And the fix is present on a 2.0.2 version

@M3lkior yeah, pipelines hiccups. Fix on the way https://github.com/asyncapi/openapi-schema-parser/pull/170


Question about that right code outline panel

Hi there, this is really a nice piece of config. I have been trying to do something like this for long but no success.
Just one small question here. I can see that you have a code oultine panel in the right-hand side. How do you get that? It deos not really looks like what TagBar provides, is that based on LSP or treesitter. I have recently been trying to find some replacement of tagbar for developing with dart since dart doesn't has the best ctag support.

I think you mean vista (https://github.com/liuchengxu/vista.vim). It can be config to be either LSP mode or ctag mode.

This is what I need. Thank you so much.


Do not trigger .dtypes computation on .astype(dtype)

Currently, a call like this would cause expensive dtypes materialization just to do an error checking in .astype, which seems to be rather expensive than really useful:
df = df.apply(func) # .dtypes are not materialized
res = df.astype(int) # materializes '.dtypes' for 'df' and discards them right-away

The line that triggers .dtypes materialization in astype is:
https://github.com/modin-project/modin/blob/d9184e6179a37c9d642269dd2841f25037c4881e/modin/core/dataframe/pandas/dataframe/dataframe.py#L1193
It happens in order to check whether we're allowed to do the requested type conversion and throw an error at the same time a user calls df.astype(inproper_type).
What we can do here is to delegate the error-checking to the kernel function that performs actual type-casting in cases where .dtypes are not available:
https://github.com/modin-project/modin/blob/d9184e6179a37c9d642269dd2841f25037c4881e/modin/core/dataframe/pandas/dataframe/dataframe.py#L1217-L1219
# how it is
df.astype(inproper_type) # long materialization + TypeError: inproper type casting

# how it would be
res = df.astype(inproper_type) # very fast
func1(res)
func2(res)
...
funcN(res)
print(res) # TypeError: inproper type casting

We can't move the error-checking to the kernel function so easily because we perform astype block-wise but not column-wise. You should take into account that block-wise partitions in a column partition may have different dtypes for their columns. We merge block-wise partitions into column partitions in order to find common dtype per column and get resultant dtypes.

We then may want to call the conversion function along the column axis: apply_full_axis(axis=0, func=astype_builder), this way we may have proper error checking. Yeah, this will be slower than just mapping partitions, but we would apply this logic only for the cases where .dtypes are not materialized, so potentially calling a single full-column function would be faster than materializing dtypes and then making the conversion.
Or we could try the same approach as with row_lengths at #5547. We may try to get current .dtypes as futures and then submit them to the astype_builder kernel so it would make an error checking.

We can't move the error-checking to the kernel function so easily because we perform astype block-wise but not column-wise. You should take into account that block-wise partitions in a column partition may have different dtypes for their columns. We merge block-wise partitions into column partitions in order to find common dtype per column and get resultant dtypes.

But wait, this shouldn't limit us anyhow. If we have an illegal type-conversion then at least one row partition will raise a proper error, isn't it?
df:
--
1    <--- int partition
2
--
"a" <--- str partition
"b"
------------- col dtype = "object"

df.astype(float)
# first partition are converted okay
# second partition raises desired error

Are there cases where it wouldn't work?

Probably only when errors="ignore".

It seems to me we are talking about two different error-handling approaches. What you, @anmyachev and @dchigarev, mean is error-handling that already happens in the kernel function. What I mean is we do kind of error-handling in the main thread to precompute resultant dtypes for new modin dataframe. This is kind of an optimization so other subsequent operations know dtypes field.
Btw, we have an issue in astype. We don't propage errors parameter to the kernel function.
import pandas
import modin.pandas as pd

pandas_df = pandas.DataFrame({"a": ["a", 2, -1]})
modin_df = pd.DataFrame({"a": ["a", 2, -1]})

pandas_df.astype("int", errors="ignore")
#     a
# 0   a
# 1   2
# 2  -1

modin_df.astype("int", errors="ignore")
# ValueError: invalid literal for int() with base 10: 'a'

https://github.com/modin-project/modin/issues/5618

What I mean is we do kind of error-handling in the main thread to precompute resultant dtypes for new modin dataframe

If .astype asks us to cast the whole dataframe to a single dtype (e.g. .astype(int)) then we can still put that value in cache as we know that all of the columns would now have the same dtype (though that only true for errors='raise', otherwise some of the columns may preserve their old types that we don't know).
So what we can come up with is some kind of a scary spaghetti-if-elsing covering different corner cases in the most optimal way:

if 'errors=raise' we can put the new dtype into cache and ask each partition to convert its type and possibly raise an error asynchonisely
if 'errors=ignore' we have to do a full-axis conversion (see Anatoly's comment) and do not put a new dtype in the cache.
... maybe there're more such cases?

the only problem I see with this optimization is that we wouldn't be able to support try-except cases because of asynchronous execution
df = pd.DataFrame({"a": [None, 1]}) # float dtype
try:
    res = df.astype(int)
except TypeError:
    res = df.astype(str)
print(res) # TypeError: can't convert 'NaN' to 'int'


CI.md: Mention branch protection

I have changed the branch protection configuration to require the Github
Actions to succeed, and no longer block on hydra. This PR merely updates
our documentation to reflect this.
This means we can (and should) ask the IDX team (if it still has that
name) to disable hydra for the Motoko repo.

This PR does not affect the produced WebAssembly code.


Support for Collision Avoidance Firmware

I am unsure on how to access OccupancyGrid from current version of the ROS2 driver.
Is that something that is currently supported or is planned to be done in the future?
Thanks in advance.

Hello,
It is not supported and at the moment there are also no future plans to support it.


[Question]: as_chat_engine.chat_stream() returns thoughts in stream

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
How can I use response_gen without getting the thoughts?
In my example:
hey
querying:
            chat_engine = QE().as_chat_engine(chat_history=prefix_messages, verbose=False, streaming=True, system_prompt=system_prompt)
            return chat_engine.stream_chat(prompt)

...
            st.write_stream(response.response_gen)

: The current language of the user is English. The user has greeted me twice, which might indicate they are waiting for a specific response or need assistance with something specific. Answer: Hello again, Nisan! How can I assist you today?

To clarify, I just want stream_gen to stream the answer

Technically it shouldn't be, but the code is a little complex to debug
https://github.com/run-llama/llama_index/blob/faa96cefb93b07c22d1a512e575b4a884a565cd4/llama-index-core/llama_index/core/agent/react/step.py#L625
maybe its worth just building an agent more from-scratch so that you have more control over the output
General workflows walkthrough:
https://docs.llamaindex.ai/en/stable/module_guides/workflow/#workflows
React Agent example:
https://docs.llamaindex.ai/en/stable/examples/workflow/react_agent/
Function calling agent example with streaming:
https://colab.research.google.com/drive/1wVCkvX7oQu1ZwrMSAyaJ8QyzHyfR0D_j?usp=sharing


cannot authorize with custom scheme

I'm using:
services.AddAuthentication().AddCookie("custom", options=> {
                options.LoginPath = "/admin/in";
                options.LogoutPath = "/admin/out";
            });

to register the scheme "custom" but when i try and authorize on the controller doing this:
[Authorize(Roles = "admin", AuthenticationSchemes = "custom")]
        public ActionResult Index()
        {
            return View();
        }

it doesn't authorize the user and redirects to login page even though the user is logged in and is in the correct role.
if, however, i try this:
[Authorize(Roles = "admin", AuthenticationSchemes = "Identity.Application")]
        public ActionResult Index()
        {
            return View();
        }

the same user will happily authorize and i can get through to the page.
so my question is - how can i get my "custom" authentication scheme to work like "Identity.Application". is there additional configuration required to get the custom authentication scheme to work correctly?
thanks.

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

ID: ee71441f-471a-89cd-0ef4-9b32b5dd85cf
Version Independent ID: 0096c365-2f4e-5d21-89a0-c4f10fcb0ed9
Content: Authorize with a specific scheme in ASP.NET Core
Content Source: aspnetcore/security/authorization/limitingidentitybyscheme.md
Product: aspnet-core
Technology: aspnetcore-security
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

it appears that setting options.ForwardAuthenticate = "Identity.Application"; solves this problem:
public void ConfigureServices(IServiceCollection services)
        {
            services.AddAuthentication().AddCookie("custom", options=> {
                options.LoginPath = "/admin/in";
                options.LogoutPath = "/admin/out";
                options.AccessDeniedPath= "/admin/in";
                options.ForwardAuthenticate = "Identity.Application";
            });

        }

this should really be documented

@blowdart  quick review of good stuff to add to this doc.

@yohsii
I had a similar problem when using a "custom" scheme with the call 'AddCookie'. My solution was to add the same scheme name in the call to "AddAuthentication". For instance:
.AddAuthentication(AuthenticationSettings.AuthenticationSchemeSharedCookie)
.AddCookie(AuthenticationSettings.AuthenticationSchemeSharedCookie, cookieAuthenticationOptions =>
Where 'AuthenticationSettings.AuthenticationSchemeSharedCookie' defines the 'custom' name.
In fact, if you are only defining one type of authentication scheme, in this case cookies, there is no need to supply the 'custom' scheme name to both calls. The extension calls to 'AddAuthentication' and 'AddCookie' use the default identity values. I hope this helps. :thumbsup
For more information see: https://github.com/aspnet/AspNetCore/blob/bfec2c14be1e65f7dd361a43950d4c848ad0cd35/src/Identity/Core/src/IdentityConstants.cs
https://github.com/aspnet/AspNetCore/blob/62351067ff4c1401556725b401478e648b66acdc/src/Security/Authentication/Core/src/AuthenticationServiceCollectionExtensions.cs

thanks @cosmoscowboy
i actually needed two schemes, the default one and a custom one.
regarding AddAuthentication, how does it know how to perform the custom authentication when all you're passing in is the name of the scheme?
cheers

it appears that setting options.ForwardAuthenticate = "Identity.Application"; solves this problem:
public void ConfigureServices(IServiceCollection services)
        {
            services.AddAuthentication().AddCookie("custom", options=> {
                options.LoginPath = "/admin/in";
                options.LogoutPath = "/admin/out";
                options.AccessDeniedPath= "/admin/in";
                options.ForwardAuthenticate = "Identity.Application";
            });

        }

this should really be documented

Thanks for this.
Please could you shed more light on why this works?

Please don't create product bugs or queries under docs. Create them in the product repo.

(Unfortunately we can't move this)

I don't have permissions :)


Status code change

Purpose
$title.

Codecov Report

Merging #17243 into master will decrease coverage by 54.53%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master   #17243       +/-   ##
===========================================
- Coverage   68.85%   14.32%   -54.54%
===========================================
  Files           5       51       +46
  Lines         122     1578     +1456
  Branches       21      255      +234
===========================================
+ Hits           84      226      +142
- Misses         38     1339     +1301
- Partials        0       13       +13

Impacted Files
Coverage Δ

tool-plugins/vscode/src/utils/logger.ts
52.63% <0%> (ø)

tool-plugins/vscode/src/core/index.ts
100% <0%> (ø)

tool-plugins/vscode/src/utils/rpc/handler.ts
5.88% <0%> (ø)

tool-plugins/vscode/src/debugger/index.ts
0% <0%> (ø)

tool-plugins/vscode/src/debugger/manager.ts
0% <0%> (ø)

...ugins/vscode/src/project-tree-view/project-tree.ts
0% <0%> (ø)

tool-plugins/vscode/src/test-runner/activator.ts
0% <0%> (ø)

...lugins/vscode/src/core/extended-language-client.ts
24% <0%> (ø)

tool-plugins/vscode/src/debugger/session.ts
0% <0%> (ø)

tool-plugins/vscode/src/extension.ts
0% <0%> (ø)

... and 36 more

Continue to review full report at Codecov.

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


After uninstalling the branch name is still in the window title

I uninstalled the extension after realizing I didn't need it, but the branch name is still in the window title. It does not remove the window title settings updated in the .vscode/settings.json

Same

Unfortunately, in absence of better options, the behavior of the extension is based on direct modification of the relevant workspace setting.
To remove the branch name after uninstalling the extension, manually edit (or reset) the window.title setting.

already solved by thank for response, it was annoying hopefully now if i forgot there is info here so thanks 👍🏼

Still seeing the branch name in title bar after resetting the window.title setting. What am I missing here?

Double check that you reset both user and workspace variants.

Thanks for this - got it sorted.


feat (IAM Access Groups): Add support for access group templates

PR summary

PR Checklist
Please make sure that your PR fulfills the following requirements:

[x] The commit message follows the Angular Commit Message Guidelines.
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

Current vs new behavior

SDK adopters will be able to call access group template and assignment APIs.
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

API Definition
Stage
Production
Tests:

Example Tests:

Integration Tests:

Basic Tests:

Integration Tests:

Example Tests:

Unit Tests:

Integration Tests:

Example Tests:


CI job finished but didn't update the job status in pull request

Container platform
No response
Version
sclorg/testing-farm-as-github-action@v1
OS version of the container image
RHEL 9
Bugzilla, Jira
No response
Description
I am using github plugin sclorg/testing-farm-as-github-action@v1 to run CI test. If I trigger one or two jobs in my pull request, it can finish and update the result in pull request.
And then I triggered 15 jobs at the same time in https://github.com/yih-redhat/tmt-demo/pull/35 , now it's been 18 hours and all job status is still 'Pending — Build started' .   I clicked the 'detail' of these jobs, and found that they are already finished and about 12 of /15 jobs  passed.
I also clicked 'Actions' and then found CI job, clicked into it, it shows all jobs are failed, which is not correct because actually some jobs passed. Click on one failed job, the error message is:
"parse error: Invalid numeric literal at line 1, column 7
Error: Process completed with exit code 4."
Reproducer
Reproduce steps:

You can find all the information and logs at https://github.com/yih-redhat/tmt-demo/pull/35,  I will keep it there while you are looking into this issue. And you can also follow these steps to reproduce it.
Go to https://github.com/yih-redhat/tmt-demo (a demo project to verify before we migrate to testing-farm)
Submit a pull request , add comment "/test-rhel-9-4"
Wait a while, github workflow will trigger all our test cases. (should be 15 jobs)

@phracek also need to take a look of this one.

Hello @yih-redhat, version 1 of tfaga is no longer supported. Feel free to migrate to v2.


Modified Compactor and ScanServer to advertise Client service

Modified Compactor and ScanServer to advertise Client service and modified client code to use TabletServer, ScanServer, and Compactor addresses when trying to execute an operation on the Client service API.
Fixes #3624

@dlmarion Can this also be done in the main branch? It's probably not as important there, since plenty of tservers are likely to be running on a non-elastic deployment, but it could reduce the number of unnecessary differences in behavior with the elasticity branch.

@ctubbsii - I think it could be, I can try that later today.

@ctubbsii - Backported to main in PR #3951


Sankey tooltip for crash shows action count and not crash count

Unable to reproduce

Was able to reproduce. Issue is caused by loop paths being counted multiple times for number of crashes.
Will add look-back mechanism to prevent duplicate counting.

Added fix to prevent duplicate counting. Pushed to Github, will be added to Chromestore version 1.54


Sorting doesn't work for fetched rows, in custom filter, after saving filter settings

System information:

Operating system (distribution) and version Win10
DBeaver version 21.0.4

Connection specification:

Database name and version Hive

Steps to reproduce, if exist:
Case 1
Open a table where rows have to be fetched and sort a column via column header
Case 2
Open Custom filter and try to order data in Columns or Custom tab
Case 3

Apply column ordering in Data Editor and press Save filter settings
Reopen the table

Expected: the data is sorted
Actual result: an error appears instead of table view

.log

Works fine against Hive 2.3.2

Cannot reproduce anymore too.


Rule proposal: no global classes/ids

Motivation
Hi,
as I am converting an existing codebase to svelte, I encountered some element classes/IDs that no longer do anything have been left over. They were previously used either for stuff like document.getElementById() or just global CSS that I over time replaced by component styles.
I thought this could be useful to automate by an eslint rule:
Description
The rule would disallow any element class or id attributes unless they are used in the component CSS.
Examples

Additional comments
Does this make sense to you as a rule? I
Also, I'm not sure about the name. Also also, there should probably be a whitelist :).
And as always, I'm willing to make a PR if you're willing to review and merge it...

Ok, let's start with classes first - I still think IDs make sense as well, but you're right, there are many elements where IDs are use for different things than just styles, so it'd be much more complicated


feat: add new strategy prefix_regexp

❓ Type of change

[x] 📖 Documentation (updates to the documentation, readme or JSdoc annotations)
[ ] 🐞 Bug fix (a non-breaking change that fixes an issue)
[ ] 👌 Enhancement (improving an existing functionality like performance)
[x] ✨ New feature (a non-breaking change that adds functionality)
[ ] 🧹 Chore (updates to the build process or auxiliary tools and libraries)
[ ] ⚠ Breaking change (fix or feature that would cause existing functionality to change)

📚 Description
This pull request introduces a new routing strategy, prefix_regexp, to the nuxt/i18n module. This strategy is designed to streamline the generation of localized routes by reducing the number of routes needed for applications supporting multiple languages.
Key Advantages:

Simplified Route Management: By consolidating non-default languages into a single route using a regular expression, this strategy significantly reduces the complexity and quantity of routes that need to be managed. This makes the application easier to maintain and debug.

Improved Performance: Fewer routes mean quicker setup times for the router and faster re-rendering, which can lead to improvements in overall application performance, especially for larger projects with many supported locales.

Reduced Bundle Size: Since only two routes are generated (one for the default language and one consolidated route for all other languages), the size of the application bundle is reduced. This minimizes the amount of code that needs to be loaded and parsed by the browser, enhancing load times and efficiency.

Enhanced Flexibility: This strategy offers a flexible approach to handle locales by utilizing regular expressions, which can be adapted to various complex requirements without altering the core routing logic.

The implementation of this strategy provides a significant advantage by not only simplifying the management of routes but also by offering a more efficient, scalable, and performance-optimized approach to handling multilingual routing in Nuxt applications. It ensures a balance between user-friendly URLs and the technical requirements of a multilingual setup.

📝 Checklist

[ ] I have linked an issue or discussion.
[x] I have added tests (if possible).
[x] I have updated the documentation accordingly.

This is an interesting solution to the amount of routes scaling out of control with lots of locales, if there are no obvious drawbacks I think it would be preferable to change the other strategies to use this approach instead of adding it as a separate strategy, what do you think?

This is an interesting solution to the amount of routes scaling out of control with lots of locales, if there are no obvious drawbacks I think it would be preferable to change the other strategies to use this approach instead of adding it as a separate strategy, what do you think?

Initially, I considered implementing the approach you suggested, but I had concerns about potential risks that could significantly impact system stability. Therefore, it seems preferable to start with a separate strategy that will not affect the current functionality. This method will allow us to systematically conduct all necessary tests, adequately assess potential problems, and their impact on the system.
Moreover, it should be noted that modifying existing code presents a significant challenge due to its volume. A complete overhaul of the entire library would require substantial time resources, which could slow down the process of introducing new features and improvements. Therefore, for the sake of optimizing the development process and reducing risks, it is advisable to start with a separate and isolated approach that will allow for more controlled integration of new solutions.

Moreover, it should be noted that modifying existing code presents a significant challenge due to its volume. A complete overhaul of the entire library would require substantial time resources, which could slow down the process of introducing new features and improvements. Therefore, for the sake of optimizing the development process and reducing risks, it is advisable to start with a separate and isolated approach that will allow for more controlled integration of new solutions.

I understand what you mean, the codebase is quite large and adding functionality is more manageable this way. Originally the routing logic was split between this module and https://github.com/intlify/routing/tree/main/packages/vue-i18n-routing, which is one of the reasons why the routing logic is fragmented.
Since I integrated and (slightly) refactored that logic I'm quite familiar with it, if I have time I'll experiment to see if your approach can be used for the other strategies (perhaps making it opt-in with an experimental.regexRouting config), if this proves to be too involved I'm not opposed to adding the additional strategy as you suggest.

Moreover, it should be noted that modifying existing code presents a significant challenge due to its volume. A complete overhaul of the entire library would require substantial time resources, which could slow down the process of introducing new features and improvements. Therefore, for the sake of optimizing the development process and reducing risks, it is advisable to start with a separate and isolated approach that will allow for more controlled integration of new solutions.

I understand what you mean, the codebase is quite large and adding functionality is more manageable this way. Originally the routing logic was split between this module and https://github.com/intlify/routing/tree/main/packages/vue-i18n-routing, which is one of the reasons why the routing logic is fragmented.
Since I integrated and (slightly) refactored that logic I'm quite familiar with it, if I have time I'll experiment to see if your approach can be used for the other strategies (perhaps making it opt-in with an experimental.regexRouting config), if this proves to be too involved I'm not opposed to adding the additional strategy as you suggest.

I've uploaded a version here where I tried to switch the code to the new routing, but I didn't finish it. All the tests failed due to the route changes, and manually checking everything is very difficult.

@BobbieGoede I've fixed another part of the functionality in the full-regexp branch, but I'm stuck on custom pages and I don't know how to do it properly.

I've solved almost all the problems; there are just the last 8 tests left. However, I can't understand how some of them work, for example, the test specs/routing/prefix-and-default.spec.ts > localePath > route strategy: prefix_and_default > should be worked.


How to make the leader node implement log compressio？

In raft-rs, I only found that the follower node can request snapshot to the leader node, or the leader sends snapshot to the follower node when synchronising the logs, but how does the leader node compress the logs itself? Is it truncated by the compact function, and then how to generate a snapshot to save it?

raft-rs is a crate that focus on Raft algorithm implementations. Snapshot and raft log are considered as application details that is beyond the crate's scope. raft-rs uses trait Storage to bridge between algorithm and applications.
For example, TiKV implements Storage trait as PeerStorage. It compacts logs via a proposal that will be proposed and commit by raft-rs and then applied outside of raft-rs. Logs are compressed when being written to underlying storage. And snapshot is generated asynchronously by scanning all key value pairs and writting them to SST files.

就像在仓库中给出的storage例子中，我看到了有compact函数和snapshot接口，我想问我对于工作流程理解正确吗？如果我在leader节点使用了compact函数进行了日志压缩，这样对于follower节点可能不能catch up，此时就会发送MsgSnapshot，或者follower节点可以直接向leader节点进行request_snapshot操作，从而获得一个snapshot进行对于主节点的更进，不过上述两种情况是不是都不会影响leader节点的snapshot信息呢
Like in the storage example given in the repository, I see that there is a compact function and a snapshot interface, and I want to ask if I understand the workflow correctly?

If I use the compact function in the leader node for log compression, then the FOLLOWER node may not be able to catch up, and then LEADER will send a MsgSnapshot to that FOLLOWER, or the FOLLOWER node can directly request_snapshot to the LEADER node, so as to get a snapshot for the LEADER node.
If these two cases are correct, I'm also asking if the above two scenarios won't have an effect on the snapshot information of the LEADER node.

then the FOLLOWER node may not be able to catch up, and then LEADER will send a MsgSnapshot to that FOLLOWER

Yes, it's correct.

or the FOLLOWER node can directly request_snapshot to the LEADER node, so as to get a snapshot for the LEADER node

No, request_snapshot is another feature that doesn't happen automatically.

if the above two scenarios won't have an effect on the snapshot information of the LEADER node.

I'm not sure what "snapshot information" means. Leader will track follower status, and it will set the status to requesting snapshot and invoke Storage::snapshot to get a physical snapshot.

No, request_snapshot is another feature that doesn't happen automatically.

Yes, I understand here, what I'm asking is if we can then actively use request_snapshot from Follower node to Leader node through this operation during external operations.

I'm not sure what "snapshot information" means. Leader will track follower status, and it will set the status to requesting snapshot and invoke Storage::snapshot to get a physical snapshot.

The "snapshot information" I'm referring to here is the Storage::snapshot you're talking about, but I'm still not sure if, in a periodic run of raft-rs, if the snapshot information is only transferred to the other nodes via the Leader node, is the content stored in the leader node's Storage ::snapshot of the leader node is still same as the value we first initialized? Some of the operations here are not quite the same as some of the other systems I've looked at before, so I'm a little confused

what I'm asking is if we can then actively use request_snapshot from Follower node to Leader node through this operation during external operations.

You can. But it's not recommended as sending snapshot is considered an expansive operation and it will block log replication to the node.

is the content stored in the leader node's Storage ::snapshot of the leader node is still same as the value we first initialized

raft-rs doesn't store the result of Storage::snapshot. The value returned by the function will be handed to application via messages immediately. And application is responsible to parse the message and maintain the physical snapshot files including sending to followers, deleting stale files, etc.

I understand. Thank you very much! But if possible could you give an example for snapshot in the example in raft-rs, in that case I would appreciate it!


Allow pin dictionaries to have strings as keys

Currently when describing pins with dicts, the keys must be integers.
When allowing strings, those can be propagated to the resource names automatically.
This is a proposal.

The commit of interest here is 054b5c12b6488175bd16abcbc39e36312e647c95

Thank you for the PR. I would prefer not to make this change at the moment. At some future point we'll need to decide on and write down guidelines for the board files, including the naming of resources (existing, new, and one-off); once done, the _SplitResources helper can be adjusted to match those decisions. For now, anyone who needs resources with custom names (custom attributes, etc) can expand the helper within the board definition and adjust the expansion.

I see. So, were still in the phase of collecting statistics.


Updated keywords

Fixes #540
@marscher if you have a chance we should do a maintenance release.

Thanks! Is the changelog up to date, we can do this maintenance release.

I believe that the change log is current.  I have been posting everything as work is performed.


Add tenant quota allocation to the tenant summary screen

Add tenant quota allocation to the tenant summary screen

@miq-bot add_label wip, enhancement, ui

@miq-bot remove_label wip

@dclarizio - ready for review

looks good, tested in UI. Can be merged when Travis is green


[FLINK-25188][python][build] Support m1 chip

What is the purpose of the change
Support m1 chip in PyFlink
Brief change log

Update python 3.7 3.8 dependencies: numpy>= 1.21.4, pyarrow>=5.0.0, pandas>=1.3.0, apache-beam==2.38.0, cloudpickle==2.1.0, pemja== 0.1.5
Fix Beam API to adapt 2.38.0 version

Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (no)
If yes, how is the feature documented? (not documented)

@deadwind4 Do you know why Azure job failed ?

@maver1ck It's maybe a deserialization error, I am researching it.

@flinkbot run azure

Success :) Good work @deadwind4

I need to make the CI auto-install different dev-requirements.txt in the python 3.6 version.


Example command is incorrect

The example command "manage-bde -protectors -adbackup C:" is incorrect. This doc also states that "the -id parameter is required" when using -adbackup or -aadbackup  however it does not explain what the ID is nor how to get the id.

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

ID: 82ef6d71-4070-a941-ccc2-868e435e7c18
Version Independent ID: 1a9eac49-6fd4-de12-9c8a-452ee31f6bc7
Content: manage-bde protectors
Content Source: WindowsServerDocs/administration/windows-commands/manage-bde-protectors.md
Product: windows-server
Technology: windows-commands
GitHub Login: @JasonGerend
Microsoft Alias: jgerend

Hey PJMarcum,
Thanks again for contacting Microsoft. We value your feedback.
Looking into this, the -get parameter in the table explains that the ID is associated to the protector and retrieves it:

Parameter
Description

-get
Displays all the key protection methods enabled on the drive and provides their type and identifier (ID).

So running manage-bde -protectors -get DriveLetter: will provide the ID.
The example used to back up the recovery password for a BitLocker-protected drive to Active Directory is correct. It would look similar to:
manage-bde -protectors -adbackup C: -id {12345678-ABCD-ABCD-ABCD-123456789012}
You should replace "{12345678-ABCD-ABCD-ABCD-123456789012}" with the actual ID of the protector that you want to back up.
As there isn't a documentation issue, we'll be closing this thread.
Thank you and have a most pleasant day.
#please-close


feat(secure-send): Update styles to match new designs

Description
All just UI updates, no functional change.
Figma
Video
Screen_recording_20231128_150142.webm
Test plan
Manually go through the flow and verify against the designs that everything looks good.
Related issues
Part of https://linear.app/valora/issue/ACT-973/update-secure-send-flow-new-copy-upshift-to-before-sendenteramount

nit: the spacing between the input boxes for last 4 digits and the submit button looks bigger than in the designs


[BUG] bloxstrap crash

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
bloxstrap opens fine but when i click to play a game like doors for example it crashes this doesnt happen in the normal launcher tho i even tried uninstalling and installing it again

i had to restart my pc it works fine now


Thumbnail image dimensions

Thumbnail image dimensions doesn't work...

Hi @Feniksss ,
Is this was related to configuration problem with config.php, then you may try the suggestions from here regarding caching and .env configurations


Add speech to tutorial

Audio needed:
dynamic sounds

[ ]   "Backspace" : "",

[ ]   "Tab" : "",

[ ]   "Enter" : "",

[ ]   "ShiftLeft" : commandToDirectionMap.brake,

[ ]   "ShiftRight" : "",

[ ]   "ControlLeft" : "",

[ ]   "ControlRight" : "",

[ ]   "AltLeft" : "",

[ ]   "AltRight" : "",

[ ]   "Pause" : "",

[ ]   "CapsLock" : "",

[ ]   "Escape" : "",

[ ]   "Space" : commandToDirectionMap.brake,

[ ]   "PageUp" : "",

[ ]   "PageDown" : "",

[ ]   "End" : "",

[ ]   "Home" : "",

[ ]   "ArrowLeft" : commandToDirectionMap.turnleft,

[ ]   "ArrowUp" : commandToDirectionMap.accelerate,

[ ]   "ArrowRight" : commandToDirectionMap.turnright,

[ ]   "ArrowDown"  : commandToDirectionMap.reverse,

[ ]   "PrintScreen"  : "",

[ ]   "Insert"  : "",

[ ]   "Delete"  : "",

[ ]   "Digit0"  : "",

[ ]   "Digit1"  : "",

[ ]   "Digit2" : "",

[ ]    "Digit3" : "",

[ ]   "Digit4"  : "",

[ ]   "Digit5"  : "",

[ ]   "Digit6" : "",

[ ]    "Digit7"  : "",

[ ]   "Digit8" : "",

[ ]    "Digit9"  : "",

[ ]   "KeyA"  : commandToDirectionMap.turnleft,

[ ]   "KeyB" : "",

[ ]    "KeyC"  : "",

[ ]   "KeyD" : commandToDirectionMap.turnright,

[ ]    "KeyE" : "",

[ ]   "KeyF"  : "",

[ ]   "KeyG" : "",

[ ]   "KeyH" : "",

[ ]   "KeyI" : "",

[ ]    "KeyJ" : "",

[ ]   "KeyK" : "",

[ ]    "KeyL" : "",

[ ]    "KeyM" : "",

[ ]   "KeyN" : "",

[ ]    "KeyO" : "",

[ ]    "KeyP"  : "",

[ ]   "KeyQ"  : "",

[ ]   "KeyR" : "",

[ ]   "KeyS" : commandToDirectionMap.reverse,

[ ]   "KeyT": "",

[ ]    "KeyU" : "",

[ ]   "KeyV" : "",

[ ]   "KeyW" : commandToDirectionMap.accelerate,

[ ]   "KeyX" : "",

[ ]   "KeyY" : "",

[ ]   "KeyZ" : "",

[ ]   "MetaLeft": "",

[ ]   "MetaRight" : "",

[ ]   "ContextMenu" : "",

[ ]   "Numpad0": "",

[ ]    "Numpad1" : "",

[ ]   "Numpad2": "",

[ ]    "Numpad3": "",

[ ]    "Numpad4": "",

[ ]   "Numpad5" : "",

[ ]   "Numpad6" : "",

[ ]   "Numpad7": "",

[ ]    "Numpad8" : "",

[ ]   "Numpad9": "",

[ ]    "NumpadMultiply": "",

[ ]   "NumpadAdd" : "",

[ ]   "NumpadSubtract": "",

[ ]    "NumpadDecimal" : "",

[ ]   "NumpadDivide": "",

[ ]    "F1": "",

[ ]    "F2" : "",

[ ]   "F3" : "",

[ ]   "F4": "",

[ ]    "F5": "",

[ ]    "F6" : "",

[ ]   "F7" : "",

[ ]   "F8" : "",

[ ]   "F9" : "",

[ ]   "F10" : "",

[ ]   "F11": "",

[ ]    "F12" : "",

[ ]   "NumLock" : "",

[ ]   "ScrollLock" : "",

[ ]   "Semicolon": "",

[ ]   "Equal": "",

[ ]   "Comma": "",

[ ]   "Minus": "",

[ ]   "Period": "",

[ ]    "Slash": "",

[ ]   "Backquote": "",

[ ]   "BracketLeft": "",

[ ]   "Backslash": "",

[ ]   "BracketRight": "",

[ ]   "Quote": "",

[ ]

[ ]  export const DEFAULT_controllerToCommandMap = {
0 : {
command : "",
buttonName : "a button"
},
1 : {
command : commandToDirectionMap.brake,
buttonName : "b button"
},
2 :{
command:"",
buttonName : "x button"
},
// x button
3 : {
command:"",
buttonName: "y button"
}, // y button
4 : {
command: commandToDirectionMap.brake,
buttonName: "left bumper"
},  // lb button
5: {
command: "",
buttonName : "right bumper"
}, // rb button
6: {
command: commandToDirectionMap.reverse,
buttonName : "left trigger"
}, //left trigger
7: {
command: commandToDirectionMap.accelerate,
buttonName : "right trigger"
}, // right trigger
8: {
command: "",
buttonName : "share"
}, // share
9:  {
command: "",
buttonName : "menu"
}, // menu
10: {
command:"",
buttonName: "right analog press"
}, // analog press right
11: {
command : "",
buttonName: "left analog press"
}, // analog press left
12: {
command: commandToDirectionMap.accelerate,
buttonName : "dpad up"
}, // dpad up
13: {
command: commandToDirectionMap.reverse,
buttonName : "dpad down"
},
// dpad down
14: {
command: commandToDirectionMap.turnleft,
buttonName : "dpad left"
}, // dpad left
15: {
command: commandToDirectionMap.turnright,
buttonName:"dpad right"
}, // dpad right
16: {
command:"",
buttonName:"home"
}, // dpad right
17: {
command:"",
buttonName:"share"
}, // dpad right
//skip
18:{
command:"",
buttonName:"left analog stick"
}, //axis 0,1 (left analog stick)
19: {
command:"",
buttonName:"right analog stick"
}//axis 2,3 (right analog stick)
}

accelerate
intro
Accelerating will slowly increase your cars speed. Once you reach certain speeds, your car will change gears, begin to accelerate slower, and lose grip on the road faster
dynamic sound 1
You can accelerate by pressing
brake
intro
Engaging the brakes will decrease your acceleration. They will work the same if you are going in reverse, as well as if you are driving forwards. If you are driving at high speeds, engaging the breaks will cause your tires to lose grip with the road.
dynamic sound 1
You can engage the brakes by pressing
reverse
intro
Reversing allows your car to drive in reverse. Reversing will attempt to move away from where you are currently facing, so if you are driving forward, it will engage the brakes before reversing. But If you start drifting and face away from your moving direction, the reverse key will start accelerating backwards instead of engaging the breaks.
dynamic sound 1
You can reverse by pressing
turn
intro
OLD: Turning allows you to change the facing angle of your car, and your moving angle will try to catch up to the best of its ability based on your tires traction. Your tire will lose traction the longer you are turning. While your traction is low, it takes your cars moving angle more time to catch up to the facing angle, resulting in a drift
NEW: Turning allows you to change the direction your car is facing. The direction the car is moving will try to catch up depending on the grip on the tires. Turning for a long time, and using the brakes both decrease your tire grip
dynamic sound 1
You can turn left by pressing
dynamic sound 2
You can turn right by pressing
tiles
intro
Each map is made up of several tile types that affect how you move around the track.
road
The road is a light tan tile, it does not negatively affect your car.
dirt
Dirt is brown, and will slow down your car, it will also reduce your traction.
wall
The wall is a darker shade of brown, if you hit the wall you will lose alot of speed, and bounce off
bounce
Bounce tiles are dark blue, if you hit a bounce tile you will shoot off the same way light bounces off a mirror.
finish
The finish tile is bright green, if you hit a finish tile your lap will increase, you can see the total and current laps at the top middle of the screen, once you reach 3 you have completed the race.

resolved in commit bfd9183b24450a5bcd3d116d8d24616a5b761e85


Issue with trigger count of a scheduled task

Description:
Cannot set the Trigger Count to -1 which should indicate that the task is configured to trigger indefinitely at the specified interval. This is available in integration studio.

Integration studio:

VS Code extension:

MI for VS Code Extension Version: v0.9.24071508 (pre-release)

Steps to reproduce:
Follow the tutorial here.

Doc Issue:

IMO, instead of adding a -1, there should be an option to set it as an indefinite trigger.

Related: https://github.com/wso2/mi-vscode/issues/170

When we do not give a value to the count parameter, it is set as an indefinite trigger by default. Therefore we need to address the issue https://github.com/wso2/mi-vscode/issues/170

I am closing the issue since it is tracked in #170.


Add shinycssloaders to all plot/table outputs

See https://github.com/andrewsali/shinycssloaders.
For any components that require some amount of calculation that might cause a momentary delay in rendering, we should provide a clear indication that the app is "working...". These loader animations (spinners) seem like a nice, easy to implement solution.

closed by #59


Windows - TiWorker eating CPU

In docker version 1.12.1, build 23cf638 - recently I've noticed all my containers just eating all the CPU, some process called TiWorker.
After some googling it seems this process has something to do with either windows update or windows firewall.  I actually have no idea because there's so little info on it.  However once I added these lines to my docker file
CMD sc stop wuauserv
CMD netsh advfirewall set allprofiles state off

The problem disappeared - so it seems its something related to that.
Apologies if this is the wrong place but if I am right about the purpose of this process then it would seem the standard microsoft/windowsservercore image has updates enabled?
Seems like a bug since I would think having containers update themselves on schedule would be terrible, especially when you have 50 of them and they are ALL running windows update.
The image version I am using for my containers right now is microsoft/windowsservercore   10.0.14300.1030     02cb7f65d61b
I know there is a newer version released a few days ago, but that image doesn't work on TP5 which is currently installed.

Closing as I found the proper place for this
https://social.msdn.microsoft.com/Forums/en-US/5261a5eb-d095-453b-949f-d045c609eacc/tiworker-eating-cpu


docker machine environment setup not working on windows cmd.exe

eval "$(docker-machine env default)" is not working on windows cmd
should be done with @FOR /f "tokens=*" %i IN ('docker-machine.exe env') DO @%i

https://github.com/nearform/micro-services-tutorial-iot/pull/28


⚠ Bofrost.fr has degraded performance

In 7185269, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1031 ms

Resolved: Bofrost.fr performance has improved in 56971db after 6 minutes.


ESP is not able to work in station mode after softAP.

Hello.
After configure esp as AP like below code I was not able to back to station mode
(for egg by using htttp_get example).
The only way how I restore this functionality was to burn nodemcu and then after setting connectivity to my access point I was able to run http_get example.
`    sdk_wifi_set_opmode(SOFTAP_MODE);
//sdk_station_config
struct sdk_softap_config apconfig;
if(sdk_wifi_softap_get_config(&apconfig)){

    strncpy((char *)apconfig.ssid, "my_nice_ssid", 32);
    strncpy((char *)apconfig.password, "some_secret_password", 32);

    apconfig.authmode = AUTH_WPA2_PSK;
    apconfig.ssid_hidden = 0;
    apconfig.max_connection = 4;
    apconfig.channel=7;

    if(!sdk_wifi_softap_set_config(&apconfig)){
        printf("ESP8266 not set ap config!\r\n");
    }
}
struct ip_info info;
IP4_ADDR(&info.ip, 192, 168, 22, 1);
//IP4_ADDR(&info.gw, 192, 168, 22, 1);
IP4_ADDR(&info.netmask, 255, 255, 255, 0);`

Wow, that's an unexpectedly big problem!
Running esptool.py erase_flash should get you back to an empty ESP flash in any case, and remove any WiFi settings that were helpfully saved by the binary SDK.
However this is still a bug! I'll try to reproduce over the next couple of days.

You enable the AP and that config is remembered. To avoid that you could use sdk_wifi_softap_set_config_current so the ESP does not remember this after a reboot/reflash.
Then when you enable station in another firmware based on esp-open-rtos you end up in station+softAp mode. And in that mode there is a bug that causes the AP to become the default interface causing all outgoing connections to go through there.
In core/app_main.c:
if (sdk_g_ic.s.wifi_mode == 3) {
sdk_wifi_station_start();
sdk_wifi_softap_start();
netif_set_default(sdk_g_ic.v.softap_netif_info->netif);
}
The above should become:
if (sdk_g_ic.s.wifi_mode == 3) {
sdk_wifi_station_start();
sdk_wifi_softap_start();
netif_set_default(sdk_g_ic.v.station_netif_info->netif);
}
I noticed connection to an MQTT server failed as soon as I set up the AP. So I started digging. For me applying the cange did the trick.


Add icon for CoolApk

Description

Add CoolApk icon
Offical site: https://www.coolapk.com/

Type of change

:x: Bug fix (non-breaking change which fixes an issue)
:white_check_mark: Icon addition (non-breaking change that adds/modifies Lawnicons's icons)
:x: General change (non-breaking change that doesn't fit the above categories like copyediting)

Icons addition information

Icons added

App CoolApk(com.coolapk.market) - added from icon request form

Icons linked

App CoolApk(linked com.coolapk.market to @drawable/coolapk)
App CoolApk(linked com.coolapk.market.vn to @drawable/coolapk)

After my test,keep the filled style will have the best effect on the phone,but it's up to you

I think it's best to delete this commit (06cd2dd)

经过我的测试，保持填充样式在手机上效果最好，但这取决于你

If take the outline form, the gap in the middle will be only a little, and take the filling form, will be better to look at, and does not affect the Lawnicons design style


Code Refactor

Same effect, but code is now more modular and readable.

@lolimay @RonLek Can I get a review?


DEVAI-163: Remove RHTAP references

What does this PR do?:

This PR removes the references to RHTAP and refactors the formatting/wording a little bit. There will be more PRs to other repositories for this issue with the final PR being on the template repo to pull all changes in.
Which issue(s) this PR fixes:

https://issues.redhat.com/browse/DEVAI-163
PR acceptance criteria:
Testing and documentation do not need to be complete in order for this PR to be approved. We just need to ensure tracking issues are opened and linked to this PR, if they are not in the PR scope due to various constraints.

[ ] Tested and Verified

[x] Documentation (READMEs, Product Docs, Blogs, Education Modules, etc.)

How to test changes / Special notes to the reviewer:
Just documentation changes.

This issues scope is only for Tech Docs @thepetk but I will be cleaning up the code variable references to rhtap in https://issues.redhat.com/browse/DEVAI-168


Client-side error

ANET 2.0.13 gets No such interface supported error in main.1f692e8d.js 25:25803

Does this still happen since 2.0.18(.1) i.e. with the React 16 upgrade merged?


Compare rule "Watchlisted by" against empty ruleset

Describe the bug
I'm trying to create a rule that says "if 'Watchlisted by' is empty [] then true to delete it" but when I compare the empty list with the string "[]" it tells me it's false.
To Reproduce

Expected behavior
Since the list is empty and I compare it with an empty list, it should give "true" in the rule.

Device (please complete the following information):

OS: Docker
Version 2.1.0

I just had a thought about this and wanted to share. What if you said watchlisted by, not contains, . Then I would assume it would return as true.

I just had a thought about this and wanted to share. What if you said watchlisted by, not contains, . Then I would assume it would return as true.

Thats the result with different combinations:
(equals)

(not_equals)

(contains)

(not_contains)

(contains_partial)

(not_contains_partial)

Well, in the formatting of my post I used <> and when it was actually posted it removed that section. So I will try again.
What I was trying to say is, what if you put a random name in there. Equaling no one is the same as not equaling (James, Lisa, Mary, John, Frank). So if you are looking for stuff that is watchlisted by no one, could you say not contains and list everyone?
So that when it is comparing it will return true if the list is empty because it wouldn't equal/contain their names?

Now I think I understand you, but in that case I would need to know the list of all possible people to compare it with the list of people who have seen the item. And for that I would need to have something like "All Plex users".
I hope you understood me now... :)

I thought you were just looking for stuff not watchlisted by anyone.

Yes, that would be what I'm looking for. Can you think of a way to do it?

Yes, that would be what I'm looking for. Can you think of a way to do it?

Thats what I was trying to say earlier. Equaling no one is the same as not equaling everyone/anyone. So you could say not contains and list everyone. Then it would return true as it wouldn't equal anyone. Instead of trying to equal blank to blank. Change it to not equaling a list of everyone.

Yes, that would be what I'm looking for. Can you think of a way to do it?

Also are we sure we're even talking about the same thing? Watchlisted and a "list of watches" are different things. Watchlisted is a feature in Plex where you can add something to your watchlist (or your "want to watch list").
Looking for people who watched something is a different thing. Just wanted to clarify.

It's hard to explain in writing, and we might be a bit lost in translation... I'm not an English speaker and I might be wrong about something.
My idea is to be able to make a rule that allows a certain item to be deleted when it is not included in anyone's Watchlist.
So, my first idea was "if the rule 'Watchlisted by' is empty" it means that no one has it in their watchlist.
I hope I'll finally be able to get my ideas across to you :)

It's hard to explain in writing, and we might be a bit lost in translation... I'm not an English speaker and I might be wrong about something.
My idea is to be able to make a rule that allows a certain item to be deleted when it is not included in anyone's Watchlist.
So, my first idea was "if the rule 'Watchlisted by' is empty" it means that no one has it in their watchlist.
I hope I'll finally be able to get my ideas across to you :)

I understand completely. We're on the same page there.
How you would do it is put everyone's name whose watchlist it could be in, and say not equals. That is the same as equaling empty.
What is the exact opposite of being in no one's watchlist?

I had thought about enabling the comparison of empty arrays and being able to do the reverse, that is, whenever "Watchlisted by" is an empty array "[]" and I compare it with the empty array text "[]" and it is "equal" it should give True. For me it is comparing 2 empty strings, which in essence should be the same. When someone has seen it, the array would be "[John Doe, Jane Doe]" and when comparing with an empty array "[]" with the "equal" rule it would give False

What do you mean when someone has seen it?

What do you mean when someone has seen it?

When someone "Watchlisted", sorry... -_-

You should come over to discord and we can DM about it.

I have same issue, I think. Was there was a resolution discussed elsewhere? Ideally, I just want to add a rule so a title won't get deleted if ~anyone~ has it in their watchlist. Trying to match on [] and [] doesn't seem to work when I test with something that has a watchlist attached.

You don't want to delete something if it's on the watchlist of someone, right?
The solution is to put not contains and list all users ["user1","user2","user3", "etc"]. It's reverse logic. So, equals no one is the same as doesn't equal everyone.

Nice. I am glad you found your answer!


Add some Rubyism

Hey!
Leaving this as a draft, as I'm not sure this set of suggestions is in a good enough state as is, but I wanted to see if there was some good discussion to be had.
As I was watching the demo video discussing Time sorting, I had some flashbacks to the number of mistakes I've made trying to compare times: .before? and .after? are helpful from the Rails side, but I wonder if there's room for aliasing some of these methods to get some expressiveness in here.
I had some fun poking at Oldest in particular. It's a tough word to sort with; Measuring someones age is a different meaning than the oldest time someone cleaned the breakroom.
Part of my hesitation with a full PR is that I know I'm overlooking alternative uses of these aliases that would behave in an unexpected way, and undermine the core value of what's here.
I also am not sure what a good place to put these aliases are! I considered breaking them out to another module, to leave the main API very focused, and thin. But, aliasing class methods from inside an included module didn't seem right. If aliasing methods like older got brought in, is there a better place to keep them?
Final thought: I debated some sort of Delegate, where oldest can delegate to the core asc / desc methods, but my raw ruby knowledge is lacking: is there a better way to pass along messages to different methods on the class? Or am I thinking about this wrong, and there's a better pattern altogether?

Reconsidering this suggestion, alongside some feedback.
For posterity, this is opening up too many ambiguous interpretations to effectively maintain. While Ruby has things like first and second, those are incredibly clear and really only have one way of being implemented.
So much of what I’ve suggested will ultimately fall on context-dependent aliasing, that takes away from the core value prop here. Domain will inevitably leak into the gem by opening this pathway up, and enable unexpected results.
Perhaps I’ll poke at something config-like, that would enable self-defined aliasing, if that seems valuable while utilizing!
TLDR: thanks for putting this cool gem together, and humouring a wayward PR!


X509 extension type admission

Could you please include the support for x509 extension admission?
Pseudo code of the asn1 syntax:
AdmissionSyntax ::= SEQUENCE {

  admissionAuthority GeneralName OPTIONAL,

  contentsOfAdmissions SEQUENCE OF Admissions }

Admissions ::= SEQUENCE {

  admissionAuthority [0] EXPLICIT GeneralName OPTIONAL,

  namingAuthority [1] EXPLICIT NamingAuthority OPTIONAL,

  professionInfos SEQUENCE OF ProfessionInfo }

NamingAuthority ::= SEQUENCE {

  namingAuthorityId OBJECT IDENTIFIER OPTIONAL,

  namingAuthorityUrl IA5String OPTIONAL,

  namingAuthorityText DirectoryString(SIZE(1..128)) OPTIONAL}

ProfessionInfo ::= SEQUENCE {

  namingAuthority [0] EXPLICIT NamingAuthority OPTIONAL,

  professionItems SEQUENCE OF DirectoryString (SIZE(1..128)),

  professionOIDs SEQUENCE OF OBJECT IDENTIFIER OPTIONAL,

  registrationNumber PrintableString(SIZE(1..128)) OPTIONAL,

  addProfessionInfo OCTET STRING OPTIONAL }

I found a good and working example here [(https://github.com/dirkx/openssl-AdmissionSyntax)]

the code needs some tweaking (we use NULL for pointers, not !; the .i2r syntax isn't supported), but looks reasonable.  Who needs this and how important is it?

And of course we'd need a CLA from the original author if s/he wanted it.

As the original author - consider this contributed under the CLA. There should be an old FIPS related CLA on file from a very long time ago (that predates last years apache style CLAs. I'll make sure that the foundation also gets a new version.

Thanks very much, Dirk!

I`m working for German Health Insurance card which will be rolled out Germany wide with thousands of customers, I saw already a solution where admission was use by lawers. For my opinion this would be a good improvement for openssl project. Are you accepting this issue as an improvment?

Yes, it will likely go in a future release.

This seems to be a reasonable addition in openssl project, why not. I made some tests using the above mentioned code with openssl-1.1.0. On windows, tests work fine but on Linux machine, they are failing with a crash at
C  [libcrypto.so.1.1+0x8d4bd]  asn1_item_embed_d2i+0x4d

Would one of you be interested in making an actual PR from this?  @dirkx, since you refer to an old CLA, would you do the honors?

I would be very grateful if you could solve this issue. You have more experience developing with openssl. I would like to provide me as a tester. The current solution has a problem with freeing resources. The upper structure ADMISSION is not freeing the internal ones. I`m not sure if freeing of a X509 structure is also freeing the ADMISSION structure.

I will try to push a PR on this.
Freeing resources issue may be solved using a ASN1_OP_FREE_PRE / ASN1_OP_FREE_POST .

A few comments.
The casting on the STACK_OF shouldn't be necessary if you declare the stack appropriately and use the appropriate sk_FOO_func form.
You shouldn't need to have ASN.1 functions for all the sub structures unless there is a need to have i2d/d2i for them.
Not sure about the resource issue. It should be handled automatically if the structure and module is defined appropriately. I'd need to look into exactly what is going on to be sure though.
The function i2r_NAMING_AUTHORITY looks a bit odd. You return 0 if any of several fields is NULL (which they could be because they're OPTIONAL) then also check later on to see if the fields are NULL.

On 27 Feb 2017, at 05:50, Stephen Henson<EMAIL_ADDRESS>wrote:

A few comments.
The casting on the STACK_OF shouldn't be necessary if you declare the stack appropriately and use the appropriate sk_FOO_func form.
You shouldn't need to have ASN.1 functions for all the sub structures unless there is a need to have i2d/d2i for them.
Not sure about the resource issue. It should be handled automatically if the structure and module is defined appropriately. I'd need to look into exactly what is going on to be sure though.
The function i2r_NAMING_AUTHORITY looks a bit odd. You return 0 if any of several fields is NULL (which they could be because they're OPTIONAL) then also check later on to see if the fields are NULL.

Yes - it is not correct. I found the issue I think - and am waiting for a sample from production to test with a few more cases.
Dw.

@dirkx and @wolftobias : have you seen PR #2759 ? It contains some questions to resolve ...

Closing this in favour of #2759

I just downloaded the openssl-master to try the admission feature, but the windows build fails, Linux 32/64 was fine. I tried afterwards the version openssl-1.1.0f which was fine. This leads me to the question: Is something wrong in the master build?
make[2]: Entering directory /usr/local/gematik/openssl-master' ( :; LIBDEPS="${LIBDEPS:-test/libtestutil.a libcrypto.a -lws2_32 -lgdi32 -lcrypt32 }"; LDCMD="${LDCMD:-x86_64-w64-mingw32-gcc}"; LDFLAGS="${LDFLAGS:--DDSO_WIN32 -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSL_API_COMPAT=0x10100000L -DOPENSSLDIR="\"/usr/local/gematik/bin/openssl-master/win64/ssl\"" -DENGINESDIR="\"/usr/local/gematik/bin/openssl-master/win64/lib/engines-1_1\"" -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE -m64 -Wall -O3 -D_MT   }"; LIBPATH=for x in $LIBDEPS; do echo $x; done | sed -e 's/^ *-L//;t' -e d | uniq; LIBPATH=echo $LIBPATH | sed -e 's/ /:/g'; echo LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH ${LDCMD} ${LDFLAGS} -o ${APPNAME:=test/asn1_internal_test.exe} test/asn1_internal_test.o ${LIBDEPS}; LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH ${LDCMD} ${LDFLAGS} -o ${APPNAME:=test/asn1_internal_test.exe} test/asn1_internal_test.o ${LIBDEPS} ) LD_LIBRARY_PATH=: x86_64-w64-mingw32-gcc -DDSO_WIN32 -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSL_API_COMPAT=0x10100000L -DOPENSSLDIR="/usr/local/gematik/bin/openssl-master/win64/ssl" -DENGINESDIR="/usr/local/gematik/bin/openssl-master/win64/lib/engines-1_1" -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DUNICODE -D_UNICODE -m64 -Wall -O3 -D_MT -o test/asn1_internal_test.exe test/asn1_internal_test.o test/libtestutil.a libcrypto.a -lws2_32 -lgdi32 -lcrypt32 libcrypto.a(mem.o):mem.c:(.text+0xb): undefined reference to random'
collect2: error: ld returned 1 exit status
make[2]: *** [link_app.cygwin] Error 1
make[2]: Leaving directory /usr/local/gematik/openssl-master' make[1]: *** [test/asn1_internal_test.exe] Error 2 make[1]: Leaving directory /usr/local/gematik/openssl-master'
make: *** [all] Error 2
remove temp source dir
[root@gematikserver gematik]#

@wolftobias, you should raise a separate issue for that one.


BrowserView API is not available

Electron supports BrowserView so that you can create a BrowserWindow with multiple panes.
However, Electron.NET doesn't expose those APIs.

Implemented! Will be released in Electron.NET version 8.31.1.


Display current mirror angle (esp. when running script)

@jonemurray has requested that we indicate the current mirror angle somewhere on the
GUI. In particular, it seems that this feature would be useful when measure scripts are
running.

@jonemurray Would you still like to try to do this in the next engagement? It didn't make it into the proposal document but I can put it on our to-do list

Yes please
Sent from Outlook for iOShttps://aka.ms/o0ukef

From: Alex Dewar @.>
Sent: Friday, October 11, 2024 12:43:54 PM
To: ImperialCollegeLondon/FINESSE @.>
Cc: Murray, Jonathan E @.>; Mention @.>
Subject: Re: [ImperialCollegeLondon/FINESSE] Display current mirror angle (esp. when running script) (Issue #583)
This email from @.*** originates from outside Imperial. Do not click on links and attachments unless you recognise the sender. If you trust the sender, add them to your safe senders listhttps://spam.ic.ac.uk/SpamConsole/Senders.aspx to disable email stamping for this address.
@jonemurrayhttps://github.com/jonemurray Would you still like to try to do this in the next engagement? It didn't make it into the proposal document but I can put it on our to-do list
—
Reply to this email directly, view it on GitHubhttps://github.com/ImperialCollegeLondon/FINESSE/issues/583#issuecomment-2407237811, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A32RD2KWXWGV2JHQAW2TYRLZ262XVAVCNFSM6AAAAABPYYAM42VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMBXGIZTOOBRGE.
You are receiving this because you were mentioned.Message ID: @.***>

Follow-up question: I've just realised it's not clear whether it would be sufficient to display the last known position of the mirror (i.e. when it was last stationary) or whether you'd like it to update more regularly (e.g. every second?).
To the team: even if @jonemurray wants the second of these, we still need to do the first one first, so this issue can still be started on.

Hi Alex,
That’s a good question, I think a more regular update would be useful. It’s useful to know it’s position and when the mirror is in motion, a 1 second update would allow this.
Cheers, Jon.
From: Alex Dewar @.>
Sent: Sunday, October 20, 2024 1:56 PM
To: ImperialCollegeLondon/FINESSE @.>
Cc: Murray, Jonathan E @.>; Mention @.>
Subject: Re: [ImperialCollegeLondon/FINESSE] Display current mirror angle (esp. when running script) (Issue #583)
This email from @.*** originates from outside Imperial. Do not click on links and attachments unless you recognise the sender. If you trust the sender, add them to your safe senders listhttps://spam.ic.ac.uk/SpamConsole/Senders.aspx to disable email stamping for this address.
Follow-up question: I've just realised it's not clear whether it would be sufficient to display the last known position of the mirror (i.e. when it was last stationary) or whether you'd like it to update more regularly (e.g. every second?).
To the team: even if @jonemurrayhttps://github.com/jonemurray wants the second of these, we still need to do the first one first, so this issue can still be started on.
—
Reply to this email directly, view it on GitHubhttps://github.com/ImperialCollegeLondon/FINESSE/issues/583#issuecomment-2424946968, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A32RD2NC2XWTNC4XZF4UGF3Z4OR4TAVCNFSM6AAAAABPYYAM42VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMRUHE2DMOJWHA.
You are receiving this because you were mentioned.Message ID: @.***>

I've belatedly realised that you can't actually query the mirror's position while the motor is moving anyway, so we'll have to make do with just knowing its position when it's stationary (though we could also indicate when it is moving).

Knowing the mirror is moving is helpful.
From: Alex Dewar @.>
Sent: Monday, October 28, 2024 12:01 PM
To: ImperialCollegeLondon/FINESSE @.>
Cc: Murray, Jonathan E @.>; Mention @.>
Subject: Re: [ImperialCollegeLondon/FINESSE] Display current mirror angle (esp. when running script) (Issue #583)
This email from @.*** originates from outside Imperial. Do not click on links and attachments unless you recognise the sender. If you trust the sender, add them to your safe senders listhttps://spam.ic.ac.uk/SpamConsole/Senders.aspx to disable email stamping for this address.
I've belatedly realised that you can't actually query the mirror's position while the motor is moving anyway, so we'll have to make do with just knowing its position when it's stationary (though we could also indicate when it is moving).
—
Reply to this email directly, view it on GitHubhttps://github.com/ImperialCollegeLondon/FINESSE/issues/583#issuecomment-2441388452, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A32RD2K3Y72NEQQCHIQZQBDZ5YKPHAVCNFSM6AAAAABPYYAM42VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINBRGM4DQNBVGI.
You are receiving this because you were mentioned.Message ID: @.***>


[BUG] Only works in settings modal

First of all thanks for creating this. But I have a problem, it doesn't seem to work for me in my nodes. Tried various external links, none of them show a preview. Tried these and more
https://obsidian.md/
[Obsidian](https://obsidian.md/)

[x] Plugin enabled
[x] Restarted Obsidian

What's very interesting, however, is that when I went to the plugin's Readme preview page and tried to click on the GitHub link, a preview opened.
OS: Win10
Plugin Version 0.1.3
Obsidian Version 1.7.7
Obsidian Installer Version 1.7.4

Are you in reading mode? As of right now it only works in reading mode and not in editing mode.

No I was in editing mode. Are you planning to implement it for editing mode as well?

I do plan on implementing it, so that is shows up when holding ctrl/command like the note preview. It'll be done by end of the month most likely.

I just had a similiar experience where it seemed to only be working on the Settings pane. I'm almost always in the Live Preview mode and and it would be really cool if it could work in this mode just on hover and using Ctrl/Command is not the only behaviour.
Thanks a lot for making this plugin though, it was something I was really missing in my workflow :)


Nibeuplink adapter added

ioBroker-Forum: https://forum.iobroker.net/topic/18646/nibe-wärmepumpe

Hi, I did a short check and have some comments:

please make sure to have all your "adapter.config" keys also listed in io-package-json in native with their default values
you also have a custom_m.html in your admin directory but do not seem to use it ?! Please remove!

@Apollon77 Thanks for checking! I changed them all and created a new version.


Support for pretrained universal-sentence-encoder models

Issue Description
Google published pretrainend sentence2vec models for tensorflow. It would be a nice addition to dl4j, if it supported loading these out of the box.
As I was told on gitter, support for these sentence 2 vec models might be underway already, but there is no issue to track progress yet.

Is the support for sentence2vec been added?


Added TTL check requests to rest client

There is no way of reseting ttl on TTL Health checks or handling them in any way from current rest client. This pull request should solve the issue.

Merged!
Thanks for the PR!


Backport pullRequest build feature in #19101

Without this change, branch with name like pull/12345 is not
recognized by TeamCity.

@bot-gradle test and merge

OK, I've already triggered a build for you.

Pre-tested commit build failed.

@bot-gradle test and merge

OK, I've already triggered a build for you.


[Bug] The unhealthy tablet can not be repaired

Describe the bug
In some cases, we will find that some unhealthy tablets are not scheduled, resulting in failure to be repaired all the time.
This may be because there are a large number of tablets in the cluster that cannot be repaired.
For example, a single-replica tablet encounters a disk damage.
However, these tablets still occupy the scheduling thread of the replica repair, so that other tablets
that can be repaired cannot be scheduled.

Improve the priority of the tablet which waiting for a long time?

Set the tablet repair timeout, and move to the low-level advanced queue if the timeout expires, and wait for the next retry?


Increment VSCode Extension version after release

Increment VSCode Extension version after release

VSCode Extension Installation Instructions

Download the extension at https://azuresdkreleasepreview.blob.core.windows.net/azd/vscode/pr/2985/azure-dev-0.9.0-alpha.1.vsix
Extract the extension from the compressed file
In vscode
a. Open "Extensions" (Ctrl+Shift+X)
b. Click the ...\ menu at top of Extensions sidebar
c. Click "Install from VSIX"
d. Select location of downloaded file


Compute Accuracy in clip-roberta

Feature request
Is it possible to include an accuracy metric when training clip-roberta?
Motivation
We would like to have something other than loss to track during training and evaluation.
Your contribution
I tried creating a dummy compute_metrics function to pass to GaudiTrainer thusly.
metric = evaluate.load("accuracy")
def compute_metrics(p):
    return 1

get the following error:
Traceback (most recent call last):
  File "run_clip.py", line 553, in <module>
    main()
  File "run_clip.py", line 532, in main
    metrics = trainer.evaluate()
  File "/usr/local/lib/python3.8/dist-packages/transformers/trainer.py", line 2932, in evaluate
    output = eval_loop(
  File "/usr/local/lib/python3.8/dist-packages/optimum/habana/transformers/trainer.py", line 1074, in evaluation_loop
    logits_dtype = get_dtype(logits)
  File "/usr/local/lib/python3.8/dist-packages/optimum/habana/transformers/trainer_utils.py", line 43, in get_dtype
    return [get_dtype(logits_tensor) for logits_tensor in logits]
  File "/usr/local/lib/python3.8/dist-packages/optimum/habana/transformers/trainer_utils.py", line 43, in <listcomp>
    return [get_dtype(logits_tensor) for logits_tensor in logits]
  File "/usr/local/lib/python3.8/dist-packages/optimum/habana/transformers/trainer_utils.py", line 45, in get_dtype
    raise TypeError(f"logits should be of type torch.Tensor or tuple, got {type(logits)} which is not supported")
TypeError: logits should be of type torch.Tensor or tuple, got <class 'transformers.modeling_outputs.BaseModelOutputWithPoolingAndCrossAttentions'> which is not supported

@skaulintel I'm going to investigate this and will let you know how to fix that.

Also, FYI, here you can find an example of how to compute the accuracy.

Thanks, it gets past the TypeError now. How can I get the accuracy printed in the log? For example when this is printed:

@skaulintel You should get eval_accuracy in the metrics logged after evaluation. And if you want to run some validation steps during training, you can do it with the argument --evaluation_strategy epoch (in this example it will be run at the end of each epoch).
Or do you want to get the accuracy on the training set maybe?


Update: Typescript metadata models

Description
Add some typescript for metadata
License
I confirm that this contribution is made under an MIT license and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Reverting change for now to keep support for primitive type function arguments
https://github.com/yahoo/navi/blob/11071e027f70d3257362df610ce0c0741e32d042/packages/data/tests/unit/models/metadata/function-argument-test.js#L116-L128


Add support for jpeg and png to 3.x

Gentle reminder for me to add support for jpeg and png images back as it is highly requested feature.
Remark:
Jpeg and png image are now supported only for papermerge <= 2.0.x, though documentation does not mention that detail, which leads to confusion.

Support for jpeg/png and tiff is now available in 3.0


Download images command

Part of https://github.com/aws/eks-anywhere/issues/1166
Will complement https://github.com/aws/eks-anywhere/pull/1478
Testing (if applicable):
It has unit tests
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm