Added "protected" option to filters (revival)

Changes
Added a protected setting to Object filters, as a possible answer to issue https://github.com/orgs/halcyon-tech/discussions/1048.
When a filter is protected:

a lock icon is shown next to its name
no modifying action can be taken on any of its children
members can be opened but cannot be saved
members listed from a protected filter search cannot be saved

The ctrl+alt+o shortcut is now Go to file (read only) and allows to open members in protected mode (i.e. save is disabled).
Checklist

[x] have tested my change
[x] updated relevant documentation
[x] eslint is not complaining
[x] for feature PRs: PR only includes one feature enhancement.

@sebjulliand @worksofliam I did a quick checkout of Seb's branch to see the function - but on my computer no filters are shown after connection to any system, and the debug console output shows this:
rejected promise not handled within 1 second: Error: ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ./src/filesystems/qsys/complex/index.js
extensionHostProcess.js:100
stack trace: Error: ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ./src/filesystems/qsys/complex/index.js
	at Object.set [as exports] (d:\Data\Develop\code-for-ibmi\dist\extension.js:42426:21)
	at ./src/filesystems/qsys/complex/index.js (d:\Data\Develop\code-for-ibmi\dist\extension.js:36286:16)
	at __webpack_require__ (d:\Data\Develop\code-for-ibmi\dist\extension.js:42384:42)
	at loadAllofExtension (d:\Data\Develop\code-for-ibmi\dist\extension.js:29392:35)
	at Login.LoginToPrevious (d:\Data\Develop\code-for-ibmi\dist\extension.js:39369:11)
	at process.processTicksAndRejections (node:internal/process/task_queues:96:5)
	at async d:\Data\Develop\code-for-ibmi\dist\extension.js:30524:25
	at async s._executeContributedCommand (c:\program files\vscodium\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:96:113532)
	at async s._executeContributedCommand (c:\program files\vscodium\resources\app\out\vs\workbench\api\node\extensionHostProcess.js:96:113532)

This was the output when starting debug - seems okay to me...
 *  Executing task: npm run webpack

><EMAIL_ADDRESS>webpack
> webpack --mode development

asset extension.js 1.48 MiB [emitted] (name: main) 1 related asset
runtime modules 1.25 KiB 5 modules
cacheable modules 1.43 MiB
  modules by path ./node_modules/ 1.01 MiB
    javascript modules 919 KiB 60 modules
<EMAIL_ADDRESS>116 KiB [built] [code generated]
    ./node_modules/ssh2-streams/package.json 590 bytes [built] [code generated]
  modules by path ./src/ 427 KiB
    modules by path ./src/api/ 200 KiB 20 modules
    modules by path ./src/filesystems/ 33.2 KiB 9 modules
    modules by path ./src/views/ 92.2 KiB 7 modules
    modules by path ./src/webviews/ 41.4 KiB 6 modules
    modules by path ./src/languages/ 13.5 KiB 4 modules
    modules by path ./src/*.ts 37.6 KiB 3 modules
    modules by path ./src/schemas/*.ts 9.03 KiB 2 modules
+ 18 modules
webpack 5.75.0 compiled successfully in 5005 ms
 *  Terminal will be reused by tasks, press any key to close it.

Anything I need to do prior to running the code in the branch?

@sebjulliand @worksofliam I did a quick checkout of Seb's branch to see the function - but on my computer no filters are shown after connection to any system, and the debug console output shows this:
...
Anything I need to do prior to running the code in the branch?

Good catch @chrjorgensen ! Even though it transpiled, the import in the "complex" QSYS FS provider was not using the correct syntax. That complex FS provider is activaed when Source Dates are enabled in the connection settings. I did not enable it in my dev env so I didn't face this issue.
But I fixed it, so it should be fine now 😁

@sebjulliand It works now like a charm! 🎉 Very nice!
Some ideas and opinions:

It would be nice if the protection could be set for the connection, thus applied to all filters for the connection.
It would be nice if the protection could be enabled/disabled after member is opened - check for protection at save instead of open.
The error message when trying to save in read only mode suggests "Retry", which does not quite make sense to me:

But you rock! 👏

Initial review:

New filter type of 'protect', which then adds a URI fragment to all Uri's below that filter.
This code is the one actually preventing the edit if it's protected: https://github.com/halcyon-tech/vscode-ibmi/pull/1075/files#diff-60902256ae7cd43976de2ae42faea36561dd9b8a75d327d17a1cf4786fdf3feaR42
protected parameter also added to any function which can generate a 'protected' Uri.

@sebjulliand It works now like a charm! 🎉 Very nice!
Some ideas and opinions:
* It would be nice if the protection could be set for the connection, thus applied to all filters for the connection.

* It would be nice if the protection could be enabled/disabled after member is opened - check for protection at save instead of open.

* The error message when trying to save in read only mode suggests "Retry", which does not quite make sense to me:
  ![billede](https://user-images.githubusercontent.com/13275072/220076834-ed9336b1-fa8f-4d00-b132-eb3013764f15.png)

But you rock! 👏

Thanks @chrjorgensen !
The error message comes from VSCode, because I throw an error to prevent the save from happening. But I may be able to display something more user friendly. I'll look into that.
Disabling the protection afterwards may prove to be tricky; I'd have to keep a reference to the filter the member comes from, in the member's URI instead of just setting a "read only" flag in the URI. So this may not be possible at the moment.
A connection level protection is possible though, as I can always get a reference to the connection. I may add that too.
Again, thanks for the feedback!

Since I can't say "no" to @chrjorgensen ...

I added a Read only mode to the connection settings, preventing IFS files and source members from being saved, globally.

When a member is opened in read only mode because it's been opened from a protected filter, unprotecting the filter will allow the opened member to be saved.

Instead of throwing an error that shows a confusing notification, I display more user friendly dialogs when the user attempts to save a read only member

If the connection is in read only mode or the filter is protected, these warning dialogs will offer an option edit the settings.

On the technical side, I switched from using the URI fragment to using the query part of it. It makes much more sense and there are standards to encode and parse it 🙂

@sebjulliand You are amazing!! 😃 Can't wait to try this - but be careful, I have many wishes! 😉

@sebjulliand Thanks for following up on my suggestions! I have tested your latest commits, and there seems to be only a few quirks:

You're fine messages are shown when I try to save a member in readonly mode - but the "member dirty" indicator on the member tab title disappears, as if the member is back to normal:

=>

This could be misinterpreted by the user, who could think this was the original content.
Can we keep the "dirty" indicator?

@sebjulliand I just created PR #1092 and I can see that we both changed the same files in the Object Browser and Search - will be interesting to see if git(hub) can handle this... 🙄

@sebjulliand Another idea that I nearly forgot: It would be nice to have some indicator in the status bar, when the connection is readonly. The filter has a lock before the name when it is protected, but you can't see when the connection is in readonly mode.

@sebjulliand Thanks for following up on my suggestions! I have tested your latest commits, and there seems to be only a few quirks:
* You're fine messages are shown when I try to save a member in readonly mode - but the "member dirty" indicator on the member tab title disappears, as if the member is back to normal:
  ![billede](https://user-images.githubusercontent.com/13275072/220922311-4df983a1-3ed3-445b-bd32-8ce6215052ac.png)
  =>
  ![billede](https://user-images.githubusercontent.com/13275072/220922451-302a028e-1af3-4c40-8891-784242f9eca0.png)
  This could be misinterpreted by the user, who could think this was the original content.
  Can we keep the "dirty" indicator?

No, I'm afraid this one won't be possible.  The only way to keep it on is to...throw en error and have that confusing error dialog showing up 😅

@chrjorgensen there you go:

That was a nice idea :)
Of course, changing the setting will update the icon on the fly.

@sebjulliand I knew you could do it! 😆

@sebjulliand And now you probably already know my next request? 😉
(hint: connection browser...)

@sebjulliand And now you probably already know my next request? 😉 (hint: connection browser...)
Don't worry, I'll stop after that one...

Humor me 😏

No humor, but you have to guess:
Which one of these connections are readonly?

No humor, but you have to guess:
Which one of these connections are readonly?

Well, it's the one with the lock, obviously! 😁

Just kidding, good thinking @chrjorgensen . I read "object browser" instead of "connection browser" yesterday's evening, so I was confused. It got better after a good night of sleep!

@sebjulliand Thanks - it looks and works great in my tests.
@worksofliam You're assigned so I leave it up to you to approve the PR...

@sebjulliand I will retest again today with these new changes.


Workshop 4 exercise 0 [HUZIEMATA YAKUBU]

Please "drag & drop" exercise 0 file below.
Huziemata Yakubu_exercise 0.docx

Please UPDATE THE TITLE of this "Issue" in the title bar above with your name.

Excellent work!


Updated validations.py python script.

Fixed the behaviour.
Closes: #1
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

completed

@googlebot  I signed it!


Add the loading of save data

Hello again. I've been working on this for a while now and I've finally got it to a bug-free state. Seeing as you're working on version 2.0, I tried to get this done as fast as possible so that it could be added in the next version.
All methods related to the score are located in the "score.c" file, as well as a really basic Level Up feature that only changes the text from "Point" to everything including "Hexagon", like the actual game. It currently loads save files from "/3DS/SuperHaxagon/savedata/" as .txt files. I could probably change it into a harder to edit format, but since there's no advantage to changing your high score, its not the highest priority at the moment.
I feel kinda bad since I've changed a lot of your code, but I hope it's not too hard to understand my code. I made a couple comments as well as tried to use as little code as possible to ensure that it was somewhat easy to understand in the end. If you have any questions or want me to change something, feel free to ask.

By the way, your current 2.0 code, as you suspected, does not compile.

Unfortunately I have no idea how I am going to merge this and version 2.0... This update is going to have to wait because almost everything was changed or refactored into other files. Once I finish refactoring the code I'll have to merge this manually!

By the way, your current 2.0 code, as you suspected, does not compile.

For the most part I am coding version 2.0 completely blind because I am refactoring everything at once (not small sections). Once the code is restored, I'll merge your commit and resolve all of the conflicts (there will be a lot)! Because of this, literaly zero code in the version 2.0 branch has been tested, so we'll see how that goes.
Sidenote: for game data I'm going to be using the path as defined here: https://github.com/RedInquisitive/Super-Haxagon/blob/2.0/source/levels.h#L14 so you can save your score data there along with the level files and music.

Alright, thats fine. I'll change the directory when I can. Quick question regarding the custom levels: how will they be loaded? Like, do they replace one of the 6 existing levels, or are they added to the total number of levels? I'd like to know so I can adapt my code accordingly. Thanks.

They are created using https://github.com/RedInquisitive/Haxa-Editor, a cross platform GUI tool that will allow you to edit and export levels. This tool is 100% functional, so if you are familiar with any java development environment it should compile without issues (I'll create a standalone JAR file when the format is official, I still need to tweak a few things).
I will re-create all of the "base levels" using this tool. In order to "share" a level, you'll need to share your (levelname).head file and all of the linked (patternname).ptn files. Somebody can then export the levels to the  "levels.haxagon" format (it's one click on the main menu of the application) and copy the exported file to the 3DS's SD card. The format itself is in binary and can be reverse engineered by looking at the source code.
With this system, anyone can share individual patterns for somebody to use, or entire levels! This also means that you can have (or can create) as many levels as you want. You will no longer be limited to just super "hexagon", but you could create super "pentagon", super "triangle" or super "hexadecagon" if you want.
In version 2.0, the generic struct for the level metadata is here: https://github.com/RedInquisitive/Super-Haxagon/blob/2.0/source/levels.h#L55-L73

@jmanplaysgames As an update for you: I have dynamic level loading working, as well  as the main menu. I have yet to refactor the base game, so I'll give you another shutout when that  happens. I don't know if you want me to refactor your code for v2.0 or if you want to do it yourself. Just let me know!

@jmanplaysgames Hey, if you ever get the time, try out the 2.0 branch and tell me what you think. It's not ready for release, but it's pretty close!
There's only 1 level atm.

Im closing this pull request to make another, GitHub is being wierd and wont let me commit the latest 2.0 changes to my fork, No idea why.

I will open a new pull request once I get everything sorted out.


CLEARMSG doesn't seems to be handled

Expected behaviour
Be able to handle CLEARMSG event
Tell us what should happen
Actual behaviour
Throw an exception
(node:13676) UnhandledPromiseRejectionWarning: Not implemented
(node:13676) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:13676) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
ℹ CLEARMSG/#txn_nerothos tmi.twitch.tv: test+

Steps to reproduce
Delete the message of an user
Your environment

Operating system(s):
TwitchJS version: 2.0.0-beta.30
NodeJS version: 10.13.0

I'm not sure if I can handle it in notice. I found "delete_message_success" but it doesn't seems like the notice was fired 🤔

Are you triggering this with /delete <target-msg-id>?
It looks like CLEARMSG (and CLEARCHAT) are handled differently than other commands. Nice find ❤

This was triggered by chatty delete so I'm not sure how they do it under hood :/

Where did that "Not implemented" in the exception come from? It's not in twitch-js source code and, at least from the documentation, Twitch does not have a not_implemented message ID.

My bad, this not implemented has nothing to do with the CLEARMSG. It's actually another piece of code who decided to triggered at the exact same moment...


[BUG] Magento bundle cart item stock status is incorrect

:bug: Bug report
Current Behavior

The stock status that Magento reports directly on the cart item refers to the parent product. This doesn't necessarily match the stock status of the selected bundle items. The Magento driver dumbly uses this field.
Expected Behavior

The Magento driver smartly computes the actual stock status of composites from the selected item options.
Minimal reproduction of the problem with instructions

Have an OOS bundle item option in your cart with in stock siblings. Magento will report a cart error for OOS items but the cart item stock status field shows in stock.
What is the motivation / use case for changing the behavior?

I want to show accurate stock statuses.

After reviewing this with @griest024 we decided that the field in_stock is appropriate on a cart item, but that the in_stock field should be derived from whether or not we have user_errors on the response from the Magento's GraphQl driver.


HI my requirement is on default  page loads menu-sidebar compact view not on expand view ? can anybody help out .

Issue type
I'm submitting a ...  (check one with "x")

[ ] bug report
[x] feature request
[ ] question about the decisions made in the repository

Issue description
Current behavior:

Expected behavior:

Steps to reproduce:

Related code:

insert short code snippets here

Other information:
npm, node, OS, Browser

Angular, Nebular

@siddu177
In sample.layout.ts
 <nb-sidebar class="menu-sidebar"                    tag="menu-sidebar"                    responsive                     state="compacted"  \\ADD THIS LINE                    [end]="sidebar.id === 'end'">         <nb-sidebar-header *ngIf="currentTheme !== 'corporate'">                         Support Us                    </nb-sidebar-header>         <ng-content select="nb-menu"></ng-content>       </nb-sidebar>

Hi @siddu177. Answer above is correct, you need to set nb-sidebar's state. Like this: <nb-sidebar state="compacted"></nb-sidebar>
You can find all configuration options for any nebular component at the docs.
Thanks for support @Prefix1802!


access to user_id and chat_id in a only triggerable command in php-telegram-bot

I'm using php-telegram-bot/core in a laravel project.
There is a cart command that only triggered by other normal command :
public function execute ()
		{
			$chat_id = $this->getMessage()->getChat()->getId();
			$user_id = $this->getMessage()->getFrom()->getId();

			$cartProducts = Cart::with('product')->where(['user_id' => $user_id])->get();

			if (!is_null($cartProducts)) {
				$result   = view('show-cart', compact('cartProducts'))->render();
				$keyboard = KeyboardController::showCartKeyboard($cartProducts);

				Request::sendMessage([
					'chat_id'      => $chat_id,
					'text'         => $result,
					'parse_mode'   => 'HTML',
					'reply_markup' => $keyboard
				]);

			}
			else {
				Request::sendMessage([
					'chat_id' => $chat_id,
					'text'    => 'your cart is Empty'
				]);
			}
		}

And in the another command I call it like this :
return $this->telegram->executeCommand('cart');

cart command is triggered but I can not access to $chat_id and $user_id variables and got this error :
Call to a member function getChat() on null {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Call to a member function getChat() on null at D:\\wamp\\www\\barlly\\app\\Commands\\CartCommand.php:44)

@ahmadbadpey Have you managed to fix this now?

@ahmadbadpey any update?

$update = json_decode($this->update->toJson(), true);
$update['message']['text'] = '/cart';
return (new CartCommand($this->telegram, new Update($update)))->preExecute();

This does not work for me. I get the following error:
PHP Fatal error:  Uncaught Error: Call to a member function isPrivateChat() on null in /path_to_bot/vendor/longman/telegram-bot/src/Commands/Command.php:376
Stack trace:
#0 /path_to_bot/vendor/longman/telegram-bot/src/Commands/Command.php(155): Longman\TelegramBot\Commands\Command->removeNonPrivateMessage()
#1 /path_to_bot/Commands/CallbackqueryCommand.php(77): Longman\TelegramBot\Commands\Command->preExecute()
#2 /path_to_bot/vendor/longman/telegram-bot/src/Commands/Command.php(173): Longman\TelegramBot\Commands\SystemCommands\CallbackqueryCommand->execute()
#3 /path_to_bot/vendor/longman/telegram-bot/src/Telegram.php(514): Longman\TelegramBot\Commands\Command->preExecute()
#4 /path_to_bot/vendor in /path_to_bot/vendor/longman/telegram-bot/src/Commands/Command.php on line 376

@ttvd94 What does your CartCommand.php look like?

@noplanman It looks like this:
class CartCommand extends UserCommand
{
    protected $name = 'cart';
    protected $description = 'Cart command';
    protected $usage = '/cart';
    protected $version = '1.1.0';
    protected $private_only = true;

    public function execute()
    {
        $message = $this->getMessage() ? $this->getMessage() : $this->getCallbackQuery()->getMessage();
        $chat_id = $message->getChat()->getId();
        $user_id = $message->getFrom()->getId();
        $text    = 'Some text';

        $data = [
            'chat_id' => $chat_id,
            'text'    => $text,
            'parse_mode' => 'MARKDOWN'
        ];

        return Request::sendMessage($data);
    }
}

@ttvd94 Where are you calling this code from? Is it via a callback query?
$update = json_decode($this->update->toJson(), true);
$update['message']['text'] = '/cart';
return (new CartCommand($this->telegram, new Update($update)))->preExecute();

@noplanman Yes it's in CallbackqueryCommand.php

@ttvd94 I trust you've managed to solve this? Can I close off here?

Yep @noplanman , finished the project a time ago. Thanks for following up on that.

Albeit a year later 😅


New project doesn't run on Node 18.17.1

18:42 $ node --version
v18.17.1
18:43 $ npm --version
9.6.7
18:43 $ npm run dev

> dev
> observable preview

Unexpected error: Unknown file extension ".ts" for /Users/georgem/work/observable/test1/observablehq.config.ts

This works fine with Node 20.11.1. The problem is the origin of my aborted https://github.com/observablehq/framework/pull/1017
I see the comment that you can remove observablehq.config.ts but ideally of course you wouldn't have to.
Really great looking framework by the way!

Project creation steps, if it matters...
18:49 $ npm init @observablehq
┌   observable create  v1.2.0
│
◇  Where to create your project?
│  test2
│
◇  What to title your project?
│  Test2
│
◇  Include sample files to help you get started?
│  Yes, include sample files
│
◇  Install dependencies?
│  Yes, via npm
│
◇  Initialize git repository?
│  Yes
│
◇  Installed! 🎉

So to clarify, a TypeScript project configuration file doesn’t work for you on Node 18, but if you switch to JavaScript, it works fine? That’s good to know. And I’ll retitle the issue accordingly if you confirm.

Probably we should just clarify that Node 20.6+ is required for TypeScript config.

I don't think I made a choice to get a observablehq.config.ts. It was just what I got by default when I ran npm init @observablehq. Unless there's something in my Node environment that influenced this somehow?

Aha, I see you switched to .js config 👍

Fixed in #1027.


Create some documentation for the project

Start writing some docs to describe the project, its use and some basic background on stellarators.

docs setup complete in #11 just needs some filling in


[mesheryctl] Add context commands

Description
This PR adds context commands to the loop using config file as its base

@anirudhjain75,  we do want for users to be able to edit the config.

We can have both right ?

We can have both right ?

Yes, sir. That's right.

@leecalcote I've added switch context command to the mix. Will take care of comments and address them tomorrow

Scenario: No config file present
Status: Failing
$  mesheryctl git:(context-commands) ./mesheryctl system context
No config file available. Provide location using --config <config-file> or run `mesheryctl system context create <name>` to generate one. Create default config now? (y/n)
y
sample config file created at /Users/lee/.meshery/config.yaml. Do edit it as per your configuration
Error: requires at least 1 arg(s), only received 0
Usage:
  mesheryctl system context [flags]
  mesheryctl system context [command]

Available Commands:
  create      create context
  delete      delete context
  switch      switch context
  view        view current context

Flags:
  -h, --help   help for context

Global Flags:
      --config string   config file (default location is: /Users/lee/.meshery/config.yaml)

Use "mesheryctl system context [command] --help" for more information about a command.

Scenario: Config file present
Status: Failing
Environment:
cat /Users/lee/.meshery/config.yaml
contexts:
  local:
    endpoint: localhost:9081
    platform: ""
    token:
      location: /Users/lee/.meshery/auth.json
      name: Default
current-context: local
tokens: null

Both mesheryctl system context and mesheryctl system context create test result in the same error message as the comment above.

Scenario: Config file present
Status: Failing
Command: mesheryctl system context create
$ mesheryctl system context create
No config file available. Provide location using --config <config-file> or run `mesheryctl system context create <name>` to generate one. Create default config now? (y/n)
y
sample config file created at /Users/lee/.meshery/config.yaml. Do edit it as per your configuration
panic: runtime error: index out of range [0] with length 0

goroutine 1 [running]:
github.com/layer5io/meshery/mesheryctl/internal/cli/root/system/context.glob..func2(0x2f97680, 0x3160b80, 0x0, 0x0, 0x0, 0x0)
        /Users/lee/code/meshery/mesheryctl/internal/cli/root/system/context/create.go:27 +0x4fd
github.com/spf13/cobra.(*Command).execute(0x2f97680, 0x3160b80, 0x0, 0x0, 0x2f97680, 0x3160b80)
        /Users/lee/code/go/pkg/mod/github.com/spf13/cobra@v1.1.1/command.go:850 +0x47c
github.com/spf13/cobra.(*Command).ExecuteC(0x2f94740, 0x25d9220, 0x3160b80, 0x0)
        /Users/lee/code/go/pkg/mod/github.com/spf13/cobra@v1.1.1/command.go:958 +0x375
github.com/spf13/cobra.(*Command).Execute(...)
        /Users/lee/code/go/pkg/mod/github.com/spf13/cobra@v1.1.1/command.go:895
github.com/layer5io/meshery/mesheryctl/internal/cli/root.Execute()
        /Users/lee/code/meshery/mesheryctl/internal/cli/root/root.go:94 +0xad
main.main()
        /Users/lee/code/meshery/mesheryctl/cmd/mesheryctl/main.go:22 +0x25

Scenario: No config file present
Status: Failing
$  mesheryctl git:(context-commands) ./mesheryctl system context
No config file available. Provide location using --config <config-file> or run `mesheryctl system context create <name>` to generate one. Create default config now? (y/n)
y
sample config file created at /Users/lee/.meshery/config.yaml. Do edit it as per your configuration
Error: requires at least 1 arg(s), only received 0
Usage:
  mesheryctl system context [flags]
  mesheryctl system context [command]

Available Commands:
  create      create context
  delete      delete context
  switch      switch context
  view        view current context

Flags:
  -h, --help   help for context

Global Flags:
      --config string   config file (default location is: /Users/lee/.meshery/config.yaml)

Use "mesheryctl system context [command] --help" for more information about a command.

This is expected. You didn't pass any argument to context

Scenario: No config file present
Status: Failing
$  mesheryctl git:(context-commands) ./mesheryctl system context
No config file available. Provide location using --config <config-file> or run `mesheryctl system context create <name>` to generate one. Create default config now? (y/n)
y
sample config file created at /Users/lee/.meshery/config.yaml. Do edit it as per your configuration
Error: requires at least 1 arg(s), only received 0
Usage:
  mesheryctl system context [flags]
  mesheryctl system context [command]

Available Commands:
  create      create context
  delete      delete context
  switch      switch context
  view        view current context

Flags:
  -h, --help   help for context

Global Flags:
      --config string   config file (default location is: /Users/lee/.meshery/config.yaml)

Use "mesheryctl system context [command] --help" for more information about a command.

This is expected. You didn't pass any argument to context

Right. The command should return my user's current context in this case.

Usage instructions are missing <name>
$ mesheryctl system context create
Error: accepts 1 arg(s), received 0
Usage:
  mesheryctl system context create [flags]

Flags:
  -h, --help         help for create
  -u, --url string   Meshery Server URL with Port (default "https://localhost:9081")

Global Flags:
      --config string   config file (default location is: /Users/lee/.meshery/config.yaml)

Scenario: Config file present. Two contexts defined.
Status: ✔ create works. ✖ view does not.
$ mesheryctl system context view
Error: accepts 1 arg(s), received 0
Usage:
  mesheryctl system context view [flags]

Flags:
  -h, --help   help for view

Global Flags:
      --config string   config file (default location is: /Users/lee/.meshery/config.yaml)

Issue: delete removes the entry for the named context, but leaves that context as the current-context.
Scenario: _current-context defined. User deletes the current-context.
Status: ✖ delete orphans the (now) invalid context name as the residual value of current-context.

Scenario: One or more contexts are created. Each individual context is deleted until none remain.
Status: ✖ create fails to create a new context.
Environment:
$ cat ~/.meshery/config.yaml
contexts: {}
current-context: test

Output:
$ mesheryctl system context create local
panic: assignment to entry in nil map

goroutine 1 [running]:
github.com/layer5io/meshery/mesheryctl/internal/cli/root/system/context.glob..func2(0x2ff3cc0, 0xc0003fa870, 0x1, 0x1, 0x0, 0x0)
	/Users/lee/code/meshery/mesheryctl/internal/cli/root/system/context/create.go:42 +0x3a6
github.com/spf13/cobra.(*Command).execute(0x2ff3cc0, 0xc0003fa850, 0x1, 0x1, 0x2ff3cc0, 0xc0003fa850)
	/Users/lee/code/go/pkg/mod/github.com/spf13/cobra@v1.1.1/command.go:850 +0x47c
github.com/spf13/cobra.(*Command).ExecuteC(0x2ff12c0, 0x2606c60, 0x31c2380, 0x0)
	/Users/lee/code/go/pkg/mod/github.com/spf13/cobra@v1.1.1/command.go:958 +0x375
github.com/spf13/cobra.(*Command).Execute(...)
	/Users/lee/code/go/pkg/mod/github.com/spf13/cobra@v1.1.1/command.go:895
github.com/layer5io/meshery/mesheryctl/internal/cli/root.Execute()
	/Users/lee/code/meshery/mesheryctl/internal/cli/root/root.go:95 +0xad
main.main()
	/Users/lee/code/meshery/mesheryctl/cmd/mesheryctl/main.go:22 +0x25

Issue: _context create <name> not allowed without creating local, too.
Scenario: Config file not present. User attempts to create a named context.
Status: ✖ create forces user to create local in addition to their named context.
Case 1:
$ mesheryctl system context create test
Missing Meshery config file.
Create default config now? [y/n]: n
Provide config file location using `--config <config-file>` or run `mesheryctl system context create <name>` to generate a config file.
$ cat ~/.meshery/config.yaml
cat: /Users/lee/.meshery/config.yaml: No such file or directory

Case 2:
➜  mesheryctl git:(context-commands) ✗ ./mesheryctl system context create test
Missing Meshery config file.
Create default config now? [y/n]: y
Default config file created at /Users/lee/.meshery/config.yaml
Added test context and set as current context
➜  mesheryctl git:(context-commands) ✗ cat ~/.meshery/config.yaml
contexts:
  local:
    endpoint: localhost:9081
    token:
      name: Default
      location: /Users/lee/.meshery/auth.json
    platform: ""
    adapters:
    - meshery-istio
    - meshery-linkerd
    - meshery-consul
    - meshery-octarine
    - meshery-nsm
    - meshery-kuma
    - meshery-cpx
    - meshery-osm
    - meshery-nginx-sm
  test:
    endpoint: https://localhost:9081
    token:
      name: ""
      location: ""
    platform: ""
    adapters:
    - meshery-istio
    - meshery-linkerd
    - meshery-consul
    - meshery-octarine
    - meshery-nsm
    - meshery-kuma
    - meshery-cpx
    - meshery-osm
    - meshery-nginx-sm
current-context: test

Issue: Usage output is unnecessary.
Scenario:
**S

Scenario: User tries to switch to undefined context name.
Status: ✔ switch handles this error case and provides usage.
Scenario: User tries to switch to current-context.
Status: ✔  switch handles this error case, but ✖ provides usage.
Issue: Usage can be removed (it isn't necessary in this case).
$ mesheryctl system context switch test
Error: already using context 'test'
Usage:
  mesheryctl system context switch [flags]

Flags:
  -h, --help   help for switch

Global Flags:
      --config string   config file (default location is: /Users/lee/.meshery/config.yaml)

@anirudhjain75 I know this long list of comments and commits can be daunting. If you would like to quickly create simple issues (using the Reference in new issue function) from each outstanding comment, we can merge this PR and move forward with new PR(s) as follow ups to those issues.

@SudhanAruna might offer to tackle a couple of those issues, too.

Ive addressed all the comments. This is ready to test and merge @leecalcote

Scenario: Config file present. Two contexts defined.
Status: ✔ create works. ✖ view does not.
$ mesheryctl system context view
Error: accepts 1 arg(s), received 0
Usage:
  mesheryctl system context view [flags]

Flags:
  -h, --help   help for view

Global Flags:
      --config string   config file (default location is: /Users/lee/.meshery/config.yaml)

Oops... Messed with working code by mistake. Pushing the fix


Document some WinHttp Options and some Query Info Flags

@trmanc : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@stevewhims : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@stevewhims : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Postgresql: dmmfString parse error

In schema.prisma generated by postgresql provider
model some_table {
  //...
  status String @default("'APPROVED'::character varying")
}

generates an invalid dmmfString:
"default":"'APPROVED'::character varying" // ',' expected.ts

This should already be fixed in prisma2 generate of the current alpha.
If you want to use the version you are currently using, you can replace @default("'APPROVED'::character varying") with @default("APPROVED") in your schema to make it work again.
Thanks for reporting!


copy.deepcopy() doesn't work anymore

This now happens with 0.6.0, but was working before:
>>> import defcon                                                                                [42/78]
>>> font = defcon.Font()
>>> import copy
>>> copy.deepcopy(font)
<defcon.objects.font.Font object at 0x106be5a58>
>>> font.save('font060.ufo')
>>> copy.deepcopy(font)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 180, in deepcopy
    y = _reconstruct(x, memo, *rv)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 280, in _reconstruct
    state = deepcopy(state, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 150, in deepcopy
    y = copier(x, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 240, in _deepcopy_dict
    y[deepcopy(key, memo)] = deepcopy(value, memo)
  File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/copy.py", line 169, in deepcopy
    rv = reductor(4)
TypeError: can't pickle _thread.RLock objects

that's because the Layer.save method stores a reference to the GlyphSet object that was used for writing, and the GlyphSet object in turns holds a filesystem object that uses some threading locks, which aren't pickleable, hence cannot be deepcopied.
https://github.com/typesupply/defcon/blob/5391d57703661ba29f607f6deacff02051cf5056/Lib/defcon/objects/layer.py#L568
However, when the output format is UFOZ, since the Font.save method needs to close the writer (to be able to actually compress the zip file), we cannot hold that reference in Layer._glyphSet attribute, so we have to set it to None
https://github.com/typesupply/defcon/blob/5391d57703661ba29f607f6deacff02051cf5056/Lib/defcon/objects/layerSet.py#L305-L315
I think the reason why Layer holds a ref to the GlyphSet after saving is to support the testForExternalChanges feature. But that probably needs to be rethought (see #209).

maybe for the deepcopy, you could try to use the getDataForSerialization and setDataFromSerialization methods

we'd have to redefine __copy__ and __deepcopy__ methods I guess
https://docs.python.org/3/library/copy.html

Yeah. I looked at that. I need to experiment with it to see if there is some way to exclude a few things instead of listing a million things to include.


Cluster-Density-v2: Create services and router before client pods

This is required because the readiness probe of the client depends on being able to hit the service/route. It only makes sense to create the service and route before the client pod.
Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[X] Optimization
[ ] Documentation Update

what do you think from the last comment @smalleni ?

This PR is not relevant due to the reasons I explained at https://github.com/cloud-bulldozer/kube-burner/pull/401#pullrequestreview-1630497833, closing


WIP: Add AES-GCM e2e test

This is based on https://github.com/openshift/library-go/pull/1475.
It splits the existing encryption e2e tests per encryption provider and add the relevant new Makefile rules to make sure that we have dedicated CI jobs for each provider. This is meant to reduce the duration of the tests.

/test e2e-gcp-operator-encryption
/test e2e-gcp-operator-encryption-perf
/test e2e-gcp-operator-encryption-perf-single-node
/test e2e-gcp-operator-encryption-single-node

/retest-required

/retest

Retesting now that aesgcm jobs are running in TechPreviewNoUpgrade clusters.

/retest

blocker bug for disabled test exists
/lgtm
/hold
(unhold if you are ready to merge)

/unhold

/jira refresh

The e2e-gcp-operator-encryption-perf-single-node failure is valid but it is caused by the fact that TestPerfEncryption is not resilient to disruption. I observed that flake a few weeks ago, and I opened https://issues.redhat.com/browse/API-1553 to fix it later. Since it is only a test issue, it is fine to move forward and disregard this failure for now.

/lgtm


Add more test cases for multiple certificates by name

Add SANs with mixed case to validate the case insensitivity
when searhing for the matching certificate
The SANs in the certificate:
Alligator.com
BEAVER.com
CATfish.com
www.Dolphin.com
WWW.elephant.com
WWW.FALCON.com
www.GORILLA.com
WWW.HORSE.COM
www.impala.COM
wWw.JaCkAl.CoM
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

:exclamation: No coverage uploaded for pull request head (mixed_case_certificate@82f2fa5). Click here to learn what that means.
The diff coverage is n/a.


ts2 branch: bug with unusual PDB files

Hi, I have files in "PDB" format inherited from a former version of the virtual macromolecular museum.
These files use to load fine with NGL v1, but in TS2 they make the browser crash.
I have notices that the "loading" debugging message is logged in the console, but the "loaded" message never appears. The screen stays blank, the browser freezes and the computer fans roar until I force quit the browser.
quartz.pdb.zip

thanks, fixed here 1d3204cb22c324d69323c43b404694017f83665b

Thanks for the fix !


TFLite Conv.h inner loop optimizations

This PR contains a number of inner loop optimizations for TFLite's conv.h kernel, to avoid calling Offset() multiple times in the loop, and to do boundary checking once when possible. For a typical image model on TensorFlow Lite Micro running on a Cortex-M4F MCU (without CMSIS-NN kernels) we see a decrease in inferencing time from 388ms. to 302ms.
I see that there are plenty of regression tests for this kernel, so I hope that CI runs them on this PR, as I have no idea how to do so :-) It has passed our internal regression suite, but we have only a small variety of models and we are branched off of TF 2.3 tag.
This work was done by @bitbank2 but sponsored by Edge Impulse - which is why I'm opening the PR.

Thanks for the PR. There is a tension here: this is reference code so one goal of the code is to provide a clear demonstration of the implementation without significant modification for performance optimization. However, it appears that this code is what is called for TFL Micro in a production setting. Over to @advaitjain to see if this is desirable on the Micro side.

Echoing what @talumbau said: The reference code isn't really aimed at being performant (the goal being generality, readability and accuracy). As such, we are hesitant to make changes here for improving performance. For production use-cases both Lite and Micro rely on target-specific optimized kernel implementations.
It would be really useful to profile the cmsis-nn kernels and make any performance improvements in upstream CMSIS-NN.
TensorflowLite Micro collaborates closely with the CMSIS-NN team and we are open to regularly updating the CMSIS versions to get additional performance improvements.
I'm going to close the current PR but I'm also looping in @freddan80 from the CMSIS-NN team in case there are performance improvements in CMSIS-NN that you see an opportunity for.

@advaitjain You might want to re-open this because at least 2 MCUs fall through the cracks - Cortex-M0/M3 and ESP32. Both end up running reference code because there is no optimized code for them, even in the CMSIS-NN functions. The CMSIS lib has optimized code for the M4/M7, but other MCUs will fall through to using the reference code indicated in this PR. This is the reason for the PR.

I second @bitbank2's comment here. We use CMSIS-NN and the ARC kernels where possible, but there are many devices out there which use the reference kernels. This usecase comes directly from us trying to make inferencing faster on an M0+. We could swap out the conv kernel ourselves, but I'd like to keep close to mainline TF.

Thanks for the additional context.
What's missing for me is why we would want to use the reference kernels (even for M0/M3). My assumption was that CMSIS has fallback paths for all cortex M targets. If those can be improved, I would lean towards making changes in CMSIS-NN, but I'll let @freddan80 weigh in on this.
I do understand the value of having portable TensorflowLite Micro kernels that are both efficient and applicable to multiple targets. For now, however, we have made the explicit choice to not go down that path and instead rely on target-specific optimized implementations, even at the cost of duplicated code.
This is to allow the maintainers of the optimized implementations freedom to decide the technical direction for their specific target, how they want to balance readability, code size and speed etc.
Adding in @vikramdattu for ESP32 optimizations. I'd be happy to have a micro/kernels/esp32 if there is a desire to optimize kernels for that target but will let @vikramdattu decide when the right time for that might be.
Some additional PRs for context on similar discussions:

https://github.com/tensorflow/tensorflow/pull/42715
https://github.com/tensorflow/tensorflow/pull/42477#issuecomment-676610773

While I don't want to rule out portable efficient kernels for Tensorflow Lite Micro completely,  it is not a direction that we want to pursue right now. Especially for code that is shared between Lite and Micro.
I recognize that these are subjective decisions that the TensorflowLite Micro team has made so we're happy to hear arguments that suggest a different path so that we can consider how we might proceed in the future.
The near to medium term path for these optimizations is to work with @freddan80 for CMSIS-NN and @vikramdattu on creating a directory for optimized ESP32 kernels.

@advaitjain thanks for the mention.
I have tested CMSIS reference versions some time back, also tested by just removing some redundant sanity checks + removing some macros(viz., offset) manually. It does make a difference. Was getting significant performance benefit with simple restructure.
As far as adding it as a ESP32 version, this is definitely something under consideration.

@bitbank2 Optimizations are done in cmsis-nn for Arm Cortex-M processors without the DSP or MVE extensions(Likes of Cortex-M0, Cortex-M3). But, because of a bug in the TFLu cmsis-nn wrapper, the reference TFLu code was used even when specifying 'cmsis-nn' as a build option until a couple of months back. That was fixed in this PR that was merged on Sept 29 https://github.com/tensorflow/tensorflow/pull/43484.
The goal is to provide optimizations across all Cortex-M processors.


programs.noisetorch.enable option doesn't add noisetorch package to environment.systemPackages

Describe the bug
The programs.noisetorch.enable option adds noisetorch to $PATH via the security wrapper in /run/wrappers/bin/ but doesn't add noisetorch to environment.systemPackages. It's pretty common for programs.*.enable options to add packages to environment.systemPackages (see programs.htop.enable & programs.git.enable for example) in order to make the .desktop entries available to application launchers etc.
Steps To Reproduce
Steps to reproduce the behavior:

Enable programs.noisetorch.enable
The noisetorch GUI is now available to be launched from a terminal but no .desktop entry is available to launch the UI from an application launcher because it's not in environment.systemPackages

Expected behavior
noisetorch should be added to environment.systemPackages
Notify maintainers
@PanAeon @legendofmiracles
Metadata
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 5.18.4, NixOS, 22.11 (Raccoon), 22.11.20220619.0d68d7c`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.10.0pre20220620_16c6c6c`
 - nixpkgs: `/nix/store/1njdlszpc3bchdcwk45c3ndb0nfmwqcr-source`

I completely agree with you on that. #184027 should add it to environment.systemPackages, sadly the package does not contain a .desktop neither but that should be fixed with #184022

As mentioned in the PR, isn't

like written on the PR if you could point me to any solution not doing it that way i would be very appreciative. When i look thru other occurences for security.wrappers in the repository i can just find either having it "missing" to add to  environment.systemPackages or adding it the same way the PR did.
If there is any other way, i would be happy to apply that, but cant find any.


Replace use of Guava Immutable* with Java 11 built-in unmodifiables

Java now has built-in immutable objects for Set.of, List.of, Map.of (and also .copyOf variants) and we no longer need to use Guava's ImmutableSet.of, etc., methods.
The use of Immutable*.Builder classes can also be discontinued. Options for replacing those include using streams with a Collectors.toUnmodifiable* collector, or using a temporary mutable version, and wrapping with Collections.unmodifiable* instead of calling .build() on the Builder.
The more we can use Java built-ins instead of Guava classes, the easier it is to upgrade between Guava versions with less risk of breakage, and possibly move towards removing the dependency altogether, or making it easier to shade. Usages of these APIs that have built-in replacements are (mostly) automatically caught by the modernizer plugin, so they should be easy to find by using the latest version of that plugin with a Java 11 build.
I'm currently working on this, in order to get our build updated to use Java 11.

One thing to be aware of: Map.of() do not guarantee insertion order like Guava's ImmutableMap does. Set.of() likely suffers from a similar issue. modernizer-maven-plugin still says these are the preferred replacements... seems like Java could have done a better job replacing them with more well-behaved versions, though.


Daemonize instrument server

:+1:

Requested ability to manage server w/o specifying api key when the daemon is being issued anything != start, restart.  Also requested default command w/ -d to be start.


Chromium - no new updates

There are no more new updates available for the Chromium package after March 18, while there were  at least once per day before.

Can perhaps come from the release repo: http://chromium.woolyss.com/api/?os=windows&bit=64&out=json is stuck on 51.0.2683.0 since that day.

Ho interesting, from http://chromium.woolyss.com/ :

Important news
The Chromium team has removed few LKGR builders. (sources: 407399 and chromium-dev)
Consequently, since 18 March 2016, the Continuous repository and official site (LKGR) are not updated.

@guillaumecle oh, interesting indeed. So looks like the chocolatey package has correctly not updated.  Can this issue be closed?

Would chocolatey want to find another source for Chromium releases?

If you can suggest another one, I would be happy to look into it.

I'm not sure about that, http://chromium.woolyss.com/ has other builds, like the "nik" ones, but I don't know if they are often updated and adapted to chocolatey.

Hello!
I am Jerry, admin of chromium.woolyss.com
I sent an email to Thomas Walter (choco admin) about this issue but he does not give me an answer.
The Chromium developers work currently on LKGR builders and Libfuzzer infrastructure...
https://bugs.chromium.org/p/chromium/issues/detail?id=539572
...but I do not know when they will provide binaries (into the Continuous repo), as before.
@gep13: you can still use the OFFICIAL Snapshot repository... but I do not have an API ready for you :/
@guillaumecle: The following builds are NOT OFFICIAL: The Chromium STABLE version are updated when the Google Chrome STABLE version is released. And about the DEV builds of nik, our devoted developer, he share a Chromium release every 2 or 3 days.

@guillaumecle @woolyss I am fairly sure that this has now been taken care of, thanks to the work that @RedBaron2 has done on this package.  If not, then please let me know.


Contact mechanics example file vs contact.engineering giving different results

I am using the example code easy_hardwall_simulation to run a simulation on my own [surface topography](Sitangshu Chatterjee. (2022). contact.engineering. Randomly Rough surface (Version 1). https://doi.org/10.57703/ce-nyq38) published on contact.engineering.
However, I am getting different results for the relative contact area - they are off by an order of magnitude (images attached):

The only change I have made to the code is change the address that the container reads, as shown below:

Why does the website and the code give different results?

@sannant

This is a mistake in the example notebook, the formulation in the docstring is ambiguous.
The "total contact area" is already the fractional contact area.
Replacing
ax.loglog(mean_pressure, total_contact_area / np.prod(t.physical_sizes), "+")

by
ax.loglog(mean_pressure, total_contact_area / np.prod(t.physical_sizes), "+")

should fix the problem:w

@pastewka , why did you call this variable like this ?
total_contact_area = (force_xy > 0).sum() / np.prod(topography.nb_grid_pts)

https://github.com/ContactEngineering/ContactMechanics/blob/c2d51d686f11b987719fc2d0bd1d3dfcca4f6a40/ContactMechanics/PipelineFunction.py#L98
I suggest to rename to fractional_contact_area.
Especially in the docstring of the pipeline function ...


Update use cases in Developer Guide

If there is anything I missed, please let me know and I'll add it to the use cases!

Codecov Report

Merging #48 (1549312) into master (eab4012) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master      #48   +/-   ##
=========================================
  Coverage     72.15%   72.15%
  Complexity      399      399
=========================================
  Files            70       70
  Lines          1232     1232
  Branches        125      125
=========================================
  Hits            889      889
  Misses          311      311
  Partials         32       32

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Also please be critical with the extension numbers because I am unsure about a few of them! :D


Save with transparent background

Is There any way to save the image with transparent background?

Is There any way to save the image with transparent background?


Frameless() issue - axis titles are not invisible

When I call formsPlot.Plot.Frameless(), it does not remove all axis titles.
See the scaled and the zoomed out result after rendering.
System Details

ScottPlot Version: 4.1.60
Operating System: Windows 10
Application Type: WinForms
.NET Version: NET Framework 4.8

I think it is not a bug. Frameless() is only to hide the axis, but not the axis titles. We have full control over titles, so we can make those disappear easily too. I close this bug therefore.
<summary>
Give the plot a frameless appearance by hiding all axes.
Axes are hidden by making them invisible and setting their size to zero.
This causes the data area to go right up to the edge of the plot.
</summary>
public void Frameless(bool hideAllAxes = true)
{
      foreach (var axis in settings.Axes)
      axis.Hide(hideAllAxes);
}

<summary>
Hide this axis by forcing its size to always be zero.
</summary>
public void Hide(bool hidden = true)
 {
      // NOTE: Don't set this.IsVisible because that will control the grid
      AxisTicks.MajorTickVisible = !hidden;
      AxisTicks.MinorTickVisible = !hidden;
      AxisTicks.TickLabelVisible = !hidden;
      AxisLine.IsVisible = !hidden;
      Collapsed = hidden;
}


Always failed to copy a image file's filename.

In explorer, click on a image file (eg. a png file).
Press F2 to try to edit the filename. Now the filename's text is in select state.
Try [ctrl]+[c] to copy the filename's text. Not work.

/duplicate of 126458 assuming that you are not running Insiders. Ideally, give version info on future issues. Maybe use Report Issue option from Help menu, which does this for you.


Control subnet choose by Docker when create bridge without subnet parameter

Description

I'am facing ip conflict with my enterprise network, when i let Docker creating a network with it's default strategy.
By default :
1 - Docker0 IP configuration is
Docker0
inet <IP_ADDRESS>  netmask <IP_ADDRESS>

2 - When an another bridge network is created (with command line docker network create or with docker compose) the "NEXT" available sub network is used :
br-xxxxx
inet <IP_ADDRESS>  netmask <IP_ADDRESS>

Since 172.18.x.x is used on my company, there is an IP Conflict
I tried to solve my problem with Docker0 IP customization
Steps to reproduce the issue:
1 - customize Docker0 subnet with the deamon "bip" parameter with "<IP_ADDRESS>/24"
Docker0
inet <IP_ADDRESS>  netmask <IP_ADDRESS>

2 - create a new bridge network with docker network create mynetwork
Describe the results you received:
The new network characteristics are :
br-xxxxx
inet <IP_ADDRESS>  netmask <IP_ADDRESS>

Describe the results you expected:
The subnet of "mynetwork" should be the next available subnet based on Docker0 configration.
br-xxxxx
inet <IP_ADDRESS>  netmask <IP_ADDRESS>

A another solution is to add a new daemon parameter to set the first subnet created with docker network create command.
Additional information you deem important (e.g. issue happens only occasionally):
Output of docker version:
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:
 OS/Arch:      linux/amd64

You can specify the IP range when you do docker network create see https://docs.docker.com/engine/reference/commandline/network_create/

Thanks for your response
It's the workaround i have used.
But i would like to deploy many docker-compose application, and i don't want to have to manage the subnet of each network when i deploy a new app. But just specif the first subnet to use by the docker network creation strategy.
I agree it's more a feature request than a bug report.

This is certainly a dup of another request.
But the idea would be to specify the range to use (also the default subnet size) on the daemon config.

This is dupe of #21776  (I already suggested its submitter to change the description).

Thanks for opening @david-maumenee, I'll close this one, but subscribe to https://github.com/docker/docker/issues/21776 to stay informed on updates

Thanks for your reponses, it was very fast !
Hope that #21776 wil be included in the next version, despite it is not yet planned.


true-zero rate and F1-score

Hello author, I would like to know how you implement the true-zero rate and F1-score, I wonder if you can make the code of these two public

Hi there,
It is based on their definitions:
def true_zeros(truth,pred):
    idx = truth == 0
    return np.sum(pred[idx]==0)/np.sum(idx)

def F1_SCORE(truth,pred):
    true_zeros = truth == 0
    pred_zeros = pred == 0
    precision = np.sum(pred_zeros & true_zeros ) / np.sum(pred_zeros)
    recall = np.sum(pred_zeros)/np.sum(true_zeros)
    return 2*(precision*recall)/(precision+recall)

Hi there,
It is based on their definitions:
def true_zeros(truth,pred):
idx = truth == 0
return np.sum(pred[idx]==0)/np.sum(idx)
def F1_SCORE(truth,pred):
true_zeros = truth == 0
pred_zeros = pred == 0
precision = np.sum(pred_zeros & true_zeros ) / np.sum(pred_zeros)
recall = np.sum(pred_zeros)/np.sum(true_zeros)
return 2*(precision*recall)/(precision+recall)

Hi there,
It is based on their definitions:
def true_zeros(truth,pred):
    idx = truth == 0
    return np.sum(pred[idx]==0)/np.sum(idx)

def F1_SCORE(truth,pred):
    true_zeros = truth == 0
    pred_zeros = pred == 0
    precision = np.sum(pred_zeros & true_zeros ) / np.sum(pred_zeros)
    recall = np.sum(pred_zeros)/np.sum(true_zeros)
    return 2*(precision*recall)/(precision+recall)

Thank you very much for your reply, it was very helpful for me

Hi there,
It is based on their definitions:
def true_zeros(truth,pred):
    idx = truth == 0
    return np.sum(pred[idx]==0)/np.sum(idx)

def F1_SCORE(truth,pred):
    true_zeros = truth == 0
    pred_zeros = pred == 0
    precision = np.sum(pred_zeros & true_zeros ) / np.sum(pred_zeros)
    recall = np.sum(pred_zeros)/np.sum(true_zeros)
    return 2*(precision*recall)/(precision+recall)


feat: replace poseidon impl with type-rs

Closes #608
Removes current Poseidon implementation & replaces with the one implemented in type-rs

@tcoratger the PR is ready for review
ci failed for the same reason the other PRs failed - locally everything was fine, pushing here again it started failing mostly with InvalidNonce or Provider(StarknetError(DuplicateTx)). Could you please take a look if the implementation is in fact correct as all tests are passing locally?

Somehow these two tests would always say duplicate tx:

can_execute_eth_transfer_invoke_v1_with_jsonrpc
can_execute_eth_transfer_invoke_v3_with_jsonrpc

It's almost like the sequencer refuses to process those txs and they got stuck.

I manually bumped the gas price to use that nonce. Should be good again.


support for getting node name from env var instead of hostname

Hi @PalNilsson
Running jobs on kubernetes, we face the issue that processes running in pods see the pod name as the host name of the node. For example, in a pod named grid-job-16703192-mp47k (which is effectively the batch job ID):
bash-4.2$ hostname
grid-job-16703192-mp47k

This makes sense for k8s, and is appropriate because each pod does have its own unique IP address, but it doesn't fit well with Panda; the result is: https://bigpanda.cern.ch/wns/CA-VICTORIA-K8S-T2/?hours=12
Every "node" is a random unique ID so it is very difficult to correlate jobs to real nodes and identify problematic nodes.
We can easily expose the real node name as an env var:
bash-4.2$ echo $MY_NODE_NAME
cluster-dev-k8s-node-a-2

So I would like to propose that the pilot look for some specific env var (maybe PANDA_NODE_NAME, PILOT_NODE_NAME ?), and if it exists, it uses that instead of the result of hostname when reporting details to the Panda server.  Would that be reasonable?

Hi (back from vacation). Using PILOT_NODE_NAME sounds good. I can look for it and use it instead of hostname if set.

Moved the discussion to https://its.cern.ch/jira/browse/ATLASPANDA-641 (I'm suggesting to use existing env var PANDA_HOSTNAME instead of a new one).
Implemented in dev pilot.


Reset form after submitting

Hi,
First of all - I'm really enjoying using this library so thank you for that. But I'm having some trouble with resetting the form after submission
This is what I currently have:
const chatSchema = z.object({
  text: z.string().nonempty(),
});

type ChatForm = z.infer<typeof chatSchema>;

const getInitFormValues = (): InitialValues<ChatForm> => ({
  text: "",
});

let chatFormValues: InitialValues<ChatForm> = getInitFormValues();

export const useChatFormLoader = routeLoader$<InitialValues<ChatForm>>(
  () => chatFormValues
);

export const useResetFormAction = globalAction$(() => {
  chatFormValues = getInitFormValues();
});

export const useChatFormAction = formAction$<ChatForm>(async (values) => {
  // process values
}, zodForm$(chatSchema));

Then inside my component$:
const [form, { Form, Field }] = useForm<ChatForm>({
  loader: useChatFormLoader(),
  action: useChatFormAction(),
  validate: zodForm$(chatSchema),
});

useTask$(({ track }) => {
  track(() => form.submitCount);
  reset(form);
});

But I get this error when calling reset:
This expression is not callable.
  Type 'ActionStore<{}, Record<string, any>, true>' has no call signatures.

I also noticed that my form.submitCount stays at 0 regardless of how often I submit?

Sorry I found the solution I wanted by passing reloadDocument={true} to the <Form>


Is Assign a policy package to a group still in private preview?

Under Ways to assign policies it indicates that "Assign a policy package to a group"  is in private preview. Is this still the case? I couldn't see a reference to this on the page it links to (https://docs.microsoft.com/en-us/microsoftteams/assign-policy-packages). This functionality appears to be available in the UI without a private preview indicator.

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

ID: a541409b-0495-5ea6-46dd-78f44efe95b4
Version Independent ID: a968f419-1d73-6d04-b01c-a505e1263cf3
Content: Assign policies in Teams - Microsoft Teams
Content Source: Teams/policy-assignment-overview.md
Service: msteams
GitHub Login: @KarliStites
Microsoft Alias: kastites

Thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


Add "minimal" build mode

There are a number of 5+ year old dependencies from numerous projects built into XACC. Many of these fail to compile on modern Clang compilers due to use of deleted C++ functions.
There would be two big advantages to adding a CMake switch that disables everything except, for example, the Aer simulator:

It would enable support for more machines because there's less probability of build failures due to out-of-date code that we can't afford to maintain.
Building less code means we could add a minimal build to the CI for QIR-EE, allowing us to ensure that the XACC components are minimally functional.

cc @wongey

@danclaudino Is this feasible to do without much effort? I could help with the cmake necessary to inject a compile-time constant that would let you #ifdef XACC_MINIMAL...

@sethrj I'll work on it today. This should be straightforward, but will let you know if I need help. Also for @wongey, if there's anything other than Aer that should be part of this minimal build, let me know.

Awesome! Thanks a bunch @danclaudino .

@danclaudino I would say keeping at least one vendor plugin in the build would be helpful for qir-ee testing purposes. I am currently testing with Honeywell and IonQ (but I think Honeywell would be a better choice if we only want to pick one). Adding another simulator like qpp might also be useful to compare results with aer (but if that is too much, I can use Honeywell's emulator instead).

Would you guys be able to test the minimal build with this https://github.com/danclaudino/xacc/tree/qiree_build before I merge it? Be sure to cmake with -DQIREE_MINIMAL_BUILD=ON.

@danclaudino It builds! 🎉 All that's needed to fix is removing an invalid header (perhaps a rogue insertion from include-what-you-use):
diff --git a/quantum/observable/pauli/PauliOperator.cpp b/quantum/observable/pauli/PauliOperator.cpp
index 198f1d2a..771a591c 100644
--- a/quantum/observable/pauli/PauliOperator.cpp
+++ b/quantum/observable/pauli/PauliOperator.cpp
@@ -13,7 +13,6 @@
 #include "PauliOperator.hpp"
 #include "CompositeInstruction.hpp"
 #include "IRProvider.hpp"
-#include <bits/c++config.h>
 #include <cassert>
 #include <cmath>
 #include <memory>

@seth That crept in a recent commit. Thanks for catching it. I went ahead and removed some other redundant/unnecessary includes from PauliOperator.cpp.

@danclaudino We are good to go here! Build was much quicker and smooth (minus usual warnings, which I happily mute). The aer hiccup still persists if I use the parallel build option, but this is now expected and only happens once at the beginning.
I tested this with my current 'working' version of qiree and all simulators and vendor plugins work perfectly. Question: do we really need to try to search for qrack in this build? It is never found but everything still works fine. Maybe we can leave that out too?

Closing this issue as it has been addressed by #22.


ci: Use matrix

Instead of building all .#checks with nix flake check directly, split this into two stages:

Job "matrix":
a. Evaluates .#checks and collects the digests of store paths.
b. Contacts Cachix to find out which store paths are already cached.
c. Prepares metadata for all store paths that are not cached.
d. Submits the JSON from which the matrix is generated and all responses from Cachix as a GitHub artifact for inspection/debugging.
Job "build" is instantiated once per flake output attribute path that must be built.
a. Runs nix build.
b. Pushes to Cachix.

The implementation is based on nix-community/nix-github-actions, but crucially also exposes digests.
Relevant GitHub Actions documentation: Using a matrix for your jobs

Will be able to review beginning of May.

I'll remove this again once #201 has landed and we have set up buildbot. In the meantime, it'll make GitHub Actions a little nicer.


Enter if (condition) {} press Enter to edit the condition without keyword prompt

Enter if (condition) {} press Enter to edit the condition without keyword prompt
JavaScript
version 1.28.1 (system setup)

Sounds like snippets..

@Despoinis Please add actionable information

Gif screenshot:
https://ipfs.infura.io/ipfs/QmacLWZwWWSzgQ62Su4m1dVhphVgdSjg86FhJ4PGWGzWoc

Use this setting "editor.suggest.snippetsPreventQuickSuggestions": false


automatically increase disk size

User story
As a developer I would love to increase the size of my disk from 14G to 30GB due to the thin provisioning
Acceptance criteria

[x] I can successfully run a shell script that expands the disk

Concrete example
Implementation notes, if any
Save the shell script on the PATH of the pulsys user

@kayiwa I saved the shell script here.
It behaved as expected on my sandbox and said there was nothing to do (since the sandbox is already at 30gb). Since you said the more portable the better, the script prompts the user for the LV & VG. The current steps specify that LV varies between VMs.


Extra array level when serializing member value

I'm observing weird output when testing with the following condensed minimal program:
#define BOOST_JSON_HEADER_ONLY 1
#include <iostream>
#include <boost/json.hpp>

class Wrapper
{
public:
   Wrapper(boost::json::value v) : wrapped{v} {}

   boost::json::value wrapped;
};

int main() {
   const auto input = boost::json::string_view{"[]"};
   const auto value = boost::json::parse(input);
   const auto wrapper = Wrapper{value};
   const auto output = boost::json::to_string(wrapper.wrapped);
   std::cout << input << " -> " << boost::json::to_string(wrapper.wrapped) << std::endl;
}

I'd expect output [] -> [] but I'm seeing [] -> [[]]. If I skip using the Wrapper, I get the desired output. Am I violating some requirement of the value type?

Now that's interesting! I expect wrapped(v) to invoke the copy constructor, not to nest the thing in an array. I will investigate, thanks.

Hmm... I added a test for this case, and it seems to pass. Can you take a look please?
https://github.com/vinniefalco/json/pull/46/commits/f39934684a52196296b1429359342659a54eccbd#diff-208eebe138334cc681ac37d611982389R446

Thanks for looking into it. Your test indeed passes.
Now it gets weird: I was using g++ (Arch Linux 9.2.1+20200130-2) 9.2.1 20200130 to submit this issue.  And still I'm observing the reported behavior consistently. With clang 9.0.1 though, my original bug vanishes. So this issue appears to be compiler dependent. Surprising! More surprisingly, your testIssue45 succeed with both compilers.
Next step: I narrowed down the differences between your version and mine. The crucial difference is the initialization of the jv member. I'm using curly braces jv{jv_}, you used round braced jv(jv_). With curly braces, your testIssue45 performs as reported by me (with g++ only).
Obviously, my version could use the initializer_list constructor. I'm assuming this it was causes the extra array level. In the end, final question: Which compiler is correct?

C++ is a bit unfriendly to classes with constructors that take initializer_list. And the main types in this library (array, object, and value) can all be constructed from initializer lists. The semantics of the library are consistent across all the containers: construction from an initializer list will produce either an array or an object with the contents of the list. In your case it is producing an array (because your initializer-list does not match the pattern of key/value pairs).
I don't think the problem is with the compiler, I think the problem is your code. Specifically, you should use function call syntax not brace initialization to construct the objects, otherwise the meaning is ambiguous. You can thank the mess of C++ initializers for this.

Agreed, I shouldn't be using the brace initialization syntax. And yes, the API is consistent as is. I see that. Sorry for alarming you.
But shouldn't the / all compilers agree on a result? At least the mess of C++ initializers is the same for all of them...

But shouldn't the / all compilers agree on a result?
I don't really know. Perhaps not, but so what?

I don't really know. Perhaps not, but so what?
If jv{jv_} is supposed to be a nested array via the initializer_list constructor, that should apply to modern clang as well. I get it, its not your fault. At least you know now...

It's possible that something in the initialization rules got changed in the standard, and the latest Clang has implemented the change.

I was using --std=c++17 just to rule this out.

The initialisation rules are quite clear (and unsafe IMHO).
The compiler will favour a list initialiser over any other constructor argument, even if it’s a list initialiser of a type that goes through a conversion to satisfy the constructor.
This bit me on the arse when using nlohmann json.
List initialisers are evil.
Curly braces for object construction should never be used unless you specifically want the list initialisation.

I'll go ahead and close this since it isn't a bug - feel free to reopen or create a new issue if you believe it is unresolved, thanks!


C99 Support: Adding -std=c99 to CFLAGS in applications break compile

Hi,
/var/lib/jenkins/workspace/SNAP_Software/pslse/common/misc/cxl.h:150: error: declaration does not declare anything
snap.c: In function 'hw_wait_irq':
snap.c:311: error: 'struct cxl_event' has no member named 'irq'
snap.c:311: error: 'struct cxl_event' has no member named 'irq'
snap.c:314: error: 'struct cxl_event' has no member named 'irq'
snap.c:324: error: 'struct cxl_event' has no member named 'afu_error'
snap.c:324: error: 'struct cxl_event' has no member named 'afu_error'
make[1]: *** [snap.o] Error 1
make[1]: Leaving directory `/var/lib/jenkins/workspace/SNAP_Software/snap/software/lib'
make: *** [lib] Error 1
struct cxl_event {
struct cxl_event_header header;
union {
struct cxl_event_afu_interrupt irq;
struct cxl_event_data_storage fault;
struct cxl_event_afu_error afu_error;
struct cxl_event_afu_driver_reserved afu_driver_event;
};
};

line 150 is the end of the union which does not have a name. Please have a look what can be done.
Thanks
Frank

Here is where I wanted to use that:
https://github.com/open-power/snap/pull/364


feat(wizard): add support for finished state

fixes https://github.com/patternfly/patternfly-next/issues/1670

Deploy preview for pf-next ready!
Built with commit 96b71b368b690904f871aab6eae0da6fd288e8b5
https://deploy-preview-1672--pf-next.netlify.com

cc @jschuler

@christiemolloy, @jknilans found a bug where if there is a lot of content in the main section, the footer isn't sticky and the content doesn't scroll. Also fixed that in this PR.

@kybaker you requested light grey arrows between list items in the breadcrumb component, do you want to update the color here to match:

@mcoker do you think we need x and y scroll? I think that might be alot for the user on mobile, maybe we could just set it to y, or maybe ask design

@christiemolloy re: overflow, looks like we use y: auto, x: hidden almost everywhere else so I think that's ok here, too.
Chatted with @kybaker and we decided to go a darker shade, using $pf-global--BorderColor--200 ($pf-color-black-500/#8b8d8f)
@kybaker can you confirm this looks OK? Updated Wizard and Breadcrumbs.

@christiemolloy @mcoker Looks good to me.

:tada: This PR is included in version 2.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Replace update-gem.sh script to update assets by a Rake task.

Because:
This script was creating a bad Sprockets' manifest file for js assets,
as reported by #117 and a regression after a new version release #122.
This commit add a Rake task assets:update responsible for updating
assets, easier to maintain.
@arthurzurb Let me know if you prefer to keep update-gem.sh around if you have any other scripts depending on it.

This has been added to the v5 branch to work with Foundation for Sites 5 updates in the future. Thanks again!


Update UDP: Ensure propagation of control message to pool.Message

This commit enhances the UDP functionality, ensuring proper dissemination of control messages to pool.Message for improved network coordination and responsiveness

Codecov Report

Merging #510 (a60bee9) into master (d63d5c8) will decrease coverage by 0.10%.
The diff coverage is 67.02%.

@@            Coverage Diff             @@
##           master     #510      +/-   ##
==========================================
- Coverage   72.52%   72.43%   -0.10%
==========================================
  Files          70       70
  Lines        5504     5569      +65
==========================================
+ Hits         3992     4034      +42
- Misses       1115     1132      +17
- Partials      397      403       +6

Files
Coverage Δ

dtls/server/session.go
81.69% <100.00%> (ø)

udp/client/conn.go
69.60% <100.00%> (-0.90%)
:arrow_down:

udp/server/server.go
80.34% <100.00%> (ø)

udp/server/session.go
79.72% <100.00%> (ø)

udp/server/discover.go
53.19% <0.00%> (ø)

message/pool/message.go
76.55% <80.00%> (+0.10%)
:arrow_up:

net/connUDP.go
61.92% <58.20%> (+1.37%)
:arrow_up:

... and 5 files with indirect coverage changes

Just re-tested with the current commit, still works fine.

@HRogge  Pls this is a final state. Could you check if it works as is expected for you ?

@HRogge Pls this is a final state. Could you check if it works as it is expected ?

It seems that multicast transmission is broken... not sure why, still trying to understand. I get neither a compiler nor a runtime error when using WriteMulticast() on net.UDPConn

I also get a broken Date for the current commit when I look at it with 'git log':
commit 7e6b2bbd34f0051d0ff09d06af2d453450a30706 (HEAD -> jkralik/feature/udp-propagate-interface, github-upstream/jkralik/feature/udp-propagate-interface)
Author: Jozef Kralik<EMAIL_ADDRESS>Date:   Wed May 10 15:11:10 2023 +0000

    Update UDP: Ensure propagation of control message to pool.Message

    This commit enhances the UDP functionality, ensuring proper dissemination
    of control messages to pool.Message for improved network coordination
    and responsiveness

@HRogge Pls this is a final state. Could you check if it works as it is expected ?

It seems that multicast transmission is broken... not sure why, still trying to understand. I get neither a compiler nor a runtime error when using WriteMulticast() on net.UDPConn

It seems my multicast now ignores the specified interface and goes along the default route (into my local management interface).

@HRogge Pls this is a final state. Could you check if it works as it is expected ?

It seems that multicast transmission is broken... not sure why, still trying to understand. I get neither a compiler nor a runtime error when using WriteMulticast() on net.UDPConn

It seems my multicast now ignores the specified interface and goes along the default route (into my local management interface).

facepalm okay, got the problem resolved... stupidity on my side.


项目依赖的三方库，麻烦更新最新版本

Because every version of minapp depends on json_annotation ^3.0.1 and color_master depends on json_annotation 4.4.0, minapp is forbidden.
So, because project depends on minapp 1.0.0-alpha-6, version solving failed.
pub get failed (1; So, because color_master depends on minapp 1.0.0-alpha-6, version solving failed.)

项目停滞维护了嘛，请升级到flutter3.0呢


Failure: Query engine binary for current platform "darwin" could not be found.

using nestjs + serverless + prisma + webpack.
when packaging with webpack for serverless, the below error throws.
schema.prsma
datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

generator client {
  provider      = "prisma-client-js"
  binaryTargets = ["native"]
}

error
Failure: Query engine binary for current platform "darwin" could not be found.
This probably happens, because you built Prisma Client on a different platform.
(Prisma Client looked in "/Users/softmarshmallow/Documents/Apps/bridged/accounts-services/server/.webpack/service/src/query-engine-darwin")

Searched Locations:

  /Users//services/server/.prisma/client
  /Users//services/node_modules/@prisma/client
  /Users//services/server/.webpack/service
  /Users//services/server/.webpack/service/src
  /Users//services/server/.webpack/service/src
  /Users//services/server/.webpack/service/src

You already added the platform "native" to the "generator" block
in the "schema.prisma" file as described in https://pris.ly/d/client-generator,
but something went wrong. That's suboptimal.

Please create an issue at https://github.com/prisma/prisma/issues/new

Closing due to inactivity.


Update outdated embeddings

Description
** Draft because I want to make sure I haven't broken tests first **
This looks daunting, but all it does is update the platform embedding directories for the flutter projects in the repo that were using outdated embeddings (android v1 embeddings, for instance).
This will prevent warnings from flutter pub get in those directories, and updated the embeddings.
The directories that were updated are:

dev/benchmarks/complex_layout
dev/benchmarks/platform_views_layout
dev/benchmarks/platform_views_layout_hybrid_composition
dev/benchmarks/platform_channels_benchmarks
dev/benchmarks/microbenchmarks
dev/integration_tests/platform_interaction
dev/integration_tests/external_ui
dev/integration_tests/gradle_deprecated_settings
dev/integration_tests/flavors
dev/integration_tests/android_semantics_testing
examples/flutter_view

I entirely replaced the embeddings with updated ones, replacing any image files with ones that were already present in the repo to avoid bloat, and adding copyright headers to the file types that required it.
Tests

No tests were harmed in the updating of these embeddings.

This should only require changing the activity (if io.flutter.app.FlutterActivity is used) and adding flutterEmbedding to AndroidManifest.xml. Let me know if you'd like me to do it


Spotify-clone added

Hi there!, I have added a "spotify-clone-app" named project. As the name explains, it's a spotify clone app made with react and spotify API, you can login in with your spotify account, it will show your playlists on the left side. The footer is hard-coded so you will not be able to play any song, btw it's a clone.

Seems Good.


Specify minimum subnet prefix for Monitor private link

Docs should specify the minimum subnet prefix / subnet size required for using AMPLS. From my own basic deployment, it looks like it needs at least 11 hosts, so likely a /27 factoring in the Azure-reserved hosts.

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

ID: 5b6378de-a16e-25f9-910b-12d2f43a04d5
Version Independent ID: a38cba02-f02c-a3a4-46d9-2f6e0b8c87d6
Content: Design your Private Link setup - Azure Monitor
Content Source: articles/azure-monitor/logs/private-link-design.md
Service: azure-monitor
Sub-service: logs
GitHub Login: @noakup
Microsoft Alias: noakuper

Thanks for that, very helpful! I'm updating our documentation as you suggest, recommending a minimum of /27 and linking to the article you point to. Many thanks for helping us improve.

I added a paragraph to the Requirements section here, it will show up shortly.

Thank you!