test_ssh_vcs_install failing due to version key mismatch

test_ssh_vcs_install is failing because the test is expecting a version key and not finding one.
243b4fd0df552b7430fbaa5dadbaa4d7b322127f removed this expectation for test_git_vcs_install, so I'm guessing such a change is also warranted here.

okay... it seems this is correct... but how has CI been green since then? That is a big concern :/

The test is marked with @pytest.mark.needs_github_ssh. Might that affect how it runs in CI?

=============================== warnings summary ===============================
tests/integration/conftest.py:82
tests/integration/conftest.py:82
tests/integration/conftest.py:82
tests/integration/conftest.py:82
  /home/runner/work/pipenv/pipenv/tests/integration/conftest.py:82: RuntimeWarning: Cannot connect to GitHub via SSH
    warnings.warn(

tests/integration/conftest.py:85
tests/integration/conftest.py:85
tests/integration/conftest.py:85
tests/integration/conftest.py:85
  /home/runner/work/pipenv/pipenv/tests/integration/conftest.py:85: RuntimeWarning: Will skip tests requiring SSH access to GitHub
    warnings.warn(

-- Docs: https://docs.pytest.org/en/latest/warnings.html

that makes a ton of sense. Thanks!


No binding generated for "DOMStringMap_deleter" function

A minimal app (like DOM example) has dependency on all 3 DOMStringMap functions (and all 3 are in list returned by wasmFile.getFunctionsToGenerateBindingsFor()), but DOMStringMap_deleter function binding is not generated resulting in:
LinkError: WebAssembly.instantiate(): Import #1020 module="env" function="DOMStringMap_deleter" error: function import requires a callable.

This is the only missing binding, if it's manually added like this:
DOMStringMap_deleter: (rawResult, ctx, nameLen, namePtr) => { /* TODO */ },

Then the project works.
Maybe it's a mangling issue, as e.g. DOMStringMap getter function also accepting a DOMString is named  DOMStringMap_getter__string.

That is strange. I have DOMStringMap in my unittests https://github.com/skoppe/spasm/blob/72b5ac83ea2a70378b0c2f1663edfd5d0b71262b/webidl/source/webidl/binding/test.d#L1151
Just for completeness' sake, you are running dub spasm:webidl -- --bindgen?
When I get back home I can try a minimal example myself, but in the meantime, if you have something testcase-like that would help as well.

Here is testcase:

Ensure dub-1.20.0-beta.2 and ldc-1.18.0 (or ldc-1.20.0) are installed and active.
Create and build project:

dub init -f sdl -n test-spasm spasm
echo 'dflags "-betterC"' >> dub.sdl
dub upgrade
dub run spasm:bootstrap-webpack
wget -O source/app.d https://raw.githubusercontent.com/skoppe/spasm/master/examples/dom/source/app.d
sed -i '/@safe/d' source/app.d
dub build --build=release --build-mode=allAtOnce
dub run spasm:webidl -- --bindgen

Check for DOMStringMap_* functions (only test-spasm will have DOMStringMap_deleter):

grep -oaE 'DOMStringMap_\w+' test-spasm
grep -oE 'DOMStringMap_\w+' spasm/modules/bindings.js

I can confirm the DOMStringMap_deleter binding function is missing.
I had to add the following to the source/app.d file:
  elem.dataset.remove("something");

Otherwise the program wouldn't use DOMStringMap, hence no import nor binding. I assume you are using dataset as well, since that is the only thing that uses DOMStringMap.
Regardless, the binding should be created when used.
Will look into it. Thx.

I have released v0.2.0-beta.6, it should be fixed there. Give dub a few minutes to update.

I had to add the following to the source/app.d file:
...
Otherwise the program wouldn't use DOMStringMap, hence no import nor binding. I assume you are using dataset as well, since that is the only thing that uses DOMStringMap.

No, the testcase I provided already caused LinkError because generated WASM file already had all 3 DOMStringMap functions as dependencies.
Is it unexpected? Did you get linker failure with example provided?

Is it unexpected? Did you get linker failure with example provided?

I see, with v0.2.0-beta.6 list of dependencies/bindings is rather short. It was very long and contained all 3 DOMStringMap functions for v0.1.13

So the bindgen tool looks at the compiled wasm function and should only create the glue code for the actual imports, not for everything, otherwise you end up with half a megabyte of js glue code.
I thought v0.1.13 already did that, but it appears not to.
Regardless, there was still a problem with DOMStringMap_deleter not being generated. That should be fixed now.

I thought v0.1.13 already did that, but it appears not to.

Yes, it did. And DOMStringMap_deleter as well as a lot of other symbols were returned by wasmFile.getFunctionsToGenerateBindingsFor() when analyzing WASM binary. So old spasm version somehow actually added these dependencies to WASM binary. If one removes all imports from app.d then no dependencies were added.

That should be fixed now.

Thank you for quickly fixing the problem. Unfortunately I still can't run the example because of #43


inline_single_instance pass should maintain instance name

See https://github.com/StanfordAHA/gemstone/pull/43.
The inline_single_instances pass takes a module definition which contains only a single instance and instantiates that instance at the parent level. So if we have a hierarchy like:
- ModuleDef Top
  - Inst Son "son_inst"
  - Inst Daughter "daughter_inst"

- ModuleDef Son
  - Inst Grandchild "grandchild_inst"

We would want to transform that into
- ModuleDef Top
  - Inst Grandchild "son_inst"
  - Inst Daughter "daughter_inst"

since moduledef Grandchild only contains a single instance. Right now we name the lifted instance of Grandchild as son_inst$grandchild_inst since this is the naming logic generically used by inlining (infact it has to be so unless there is only a single instance inside).
At a high-level there are two ways to do this: one is to do the default naming and then rename the inlined instance. The other way to do this is to pass in a custom "namer" functor, which takes in the child and grandchild instances and returns a new name. The default value for this functor could be [](Instance* const child, Instance* const grandchild) { return child->name() + "$" + grandchild->name(); }. When inline single instances calls inlineInstance() the functor would be [](Instance* const child, Instance* const grandchild) { return child->name(); }.

Relevant files to modify:
inline.cpp: Add ability to pass in naming functor
inline_single_instance.cpp: Use the new inline API
Relevant tests:
tests/binary/test_clock_gate.py
tests/binary/test_inline_single_instances_metadata.py
tests/gtest/test_if_reconstruction.cpp


Change NSURL.description to match Darwin

Consider this program
import Foundation

let nsurl = NSURL(string: "http://google.com")!
let url = URL(string: "http://amazon.in")!

print(url)
print(nsurl)

Output on Darwin
http://amazon.in
http://google.com

Output on Linux
<CFURL 0x8eb3ed0 [0x7f7f63d54c38]>{string = http://amazon.in, encoding = 134217984, base = (null)}
<CFURL 0x8e41620 [0x7f7f63d54c38]>{string = http://google.com, encoding = 134217984, base = (null)}

This PR makes the output on Linux same as that on Darwin.

Thanks! Can we add a test too?

@ianpartridge : Added Test case to test URL.description under TestURL.swift.

@swift-ci please test and merge

@swift-ci please test and merge


Do not generate log file when running help sub-command

Bug Description
When running preflight help, an empty log file is created.
Version and Command Invocation
$ ./preflight --version
preflight version 0.0.0 <commit: 2d3bb671bff8a95d385621382f31215234877d44>

Steps to Reproduce:

Build the preflight binary locally: make build
Run the help sub-command: ./preflight help

Expected Result
An empty log file should not be created when running the help sub-command.
Actual Result
An empty log file named preflight.log is created.
ls -la preflight*
-rwxrwxr-x. 1 john john 11072372 Jul 21 10:07 preflight
-rw-------. 1 john john        0 Jul 21 10:08 preflight.log

Additional Context
N/A

This appears to be a regression: https://github.com/redhat-openshift-ecosystem/openshift-preflight/issues/30

Is this causing any issues rather than being slightly annoying?  I think we fixed this in the past by initializing the logging in each subcommand which caused the logging init code to be sprinkled in multiple places.  Having that code in multiple places seems more annoying.

This is not causing any issues, it's just slightly annoying.


Weird flows for other datasets

Hi,
Thanks you for developing interesting method, I am planning to use it in my research. I am trying inference with other datasets, even simulation datasets containing actual flow. However, in some cases the intermediate flow looks weird:

This is flow encoded with arrows (i.e. arrows representing magnitude of the flow). And this is the flow in HSV:

There is a lot of flow for empty regions with zero pixel values where nothing is moving (top left and bottom right parts). What could cause such weird flow results? Interpolation still works fine.
Regards,
Hamid

If you just want accurate optical flow, it is recommended to try RAFT: https://github.com/princeton-vl/RAFT
Maybe I can add constraints to static scenes during RIFE training.

Thanks for your reply, I am aware of RAFT, I was looking at it in the beginning, however the idea of my project is to have unsupervised method because we don't always have the flow labels to train the network. I am planning also to implement RIFE in 3D to support volumetric interpolation.
I tried another scientific dataset, the flow there is meaningful (and interpolation is perfect):

It is just a totally different case for first dataset that I showed, it looks like something is off there. Could that be related to the fact that data was not in RGB initially? Also, the output size of the flow wasn't same as input frames size, I padded the input, not sure if that is the best thing to do.

You have an exciting news. My suggestion is to make some improvements to the loss function as I don't know if methods like laplacian loss will work in your scenario.

Thanks for your suggestion. I changed the loss from laplacian to l1. I'll train the model with this loss and check the results.

I have modified the loss and removed laplacian pyramid. I trained the model, but when I wanted to check inference, I am getting the error:
"Missing key(s) in state_dict: "block0.conv0.0.weight", "block0.conv0.1.weight", "block0.conv0.1.b
ias", "block0.conv0.1.running_mean", "block0.conv0.1.running_var", "block0.conv0.2.weight", "block0.res0.
conv1.0.weight", "block0.res0.conv1.1.weight", "block0.res0.conv1.1.bias", "block0.res0.conv1.1.running_m
ean", "block0.res0.conv1.1.running_var", "block0.res0.conv1.2.weight", ...
Unexpected key(s) in state_dict: "block_tea.conv0.0.0.weight", "block_tea.conv0.0.0.bias", "block
_tea.conv0.0.1.weight", "block_tea.conv0.1.0.weight", "block_tea.conv0.1.0.bias", "block_tea.conv0.1.1.we
ight", "block_tea.convblock.0.0.weight", "block_tea.convblock.0.0.bias", ..."

I am getting a similar error when I train the unmodified model on Vimeo90K and run inference. Am I missing something?

I have fixed the previous issue via just using the training and inference of the same model (RIFE.py, IFNet.py).
And about the weird flow, I think it might be because the IFNet layers are not regularized. I am going to try adding small regularization (L1 and L2) and check the results.


Support string with multi-byte characters

ref: https://github.com/localstack/localstack/issues/1619
The above problem has revealed that localstack cannot handle multi-bytes characters.

Released in 0.15.1, thanks!


[Door-Lock-Server] Move Auto-Relock timing out of server and into Application

Problem
DoorLockServer currently implements AutoRelock and UnlockWithTimeout relock timing internally. However, this presents a problem for lock devices that implement such functionality in hardware (for security issues, etc).
Proposed Solution
Two possible solutions:

Move relock timing out of door-lock-server and into the application (add implementation to door-lock sample).
Encase existing auto-relock functionality inside compile-time conditionals (#if's).

post 1.0 enhancement.
No spec compliance implications


[Feature] Support for cleaning the trash actively

Proposed changes
Support for cleaning the trash actively.
User can use 'CLEAN TRASH' to clean trash.
Types of changes
What types of changes does your code introduce to Doris?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[X] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[X] Documentation Update (if none of the other choices apply)
[ ] Code refactor (Modify the code structure, format the code, etc...)
[ ] Optimization. Including functional usability improvements and performance improvements.
[ ] Dependency. Such as changes related to third-party components.
[ ] Other.

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[X] I have created an issue on (Fix #6322) and described the bug/feature there in detail
[X] Compiling and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[X] If these changes need document changes, I have updated the document
[ ] Any dependent changes have been merged

Please enrich your commit msg

How to force sweep trash?

I do some change at https://github.com/apache/incubator-doris/pull/6323/commits/08df4ce559f1cd4536e0aed9d68cadd15fb1d6a4


update libUsdOracle

updates each whitelisted token to have a minimum stalkEarnedPerSeason of 1. This is not strictly necessary when whitelisting a token through the whitelistFacet, but reseedWhitelist skips the validation check that is performed.
Updates ReseedWhitelist such that the oracle implementation is only set on LP tokens.

LGTM


fix(compiler): Line breaks in textarea are not removed. (fix: #11446)

fix: #11446

What kind of change does this PR introduce? (check at least one)

[X] Bugfix
[ ] Feature
[ ] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change? (check one)

[ ] Yes
[X] No

If yes, please describe the impact and migration path for existing applications:
The PR fulfills these requirements:

[X] It's submitted to the dev branch for v2.x (or to a previous version branch), not the master branch
[X] When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)
[X] All tests are passing: https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#development-setup
[x] New/updated tests are included

If adding a new feature, the PR's description includes:

[ ] A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Other information:

Hello? When will it be reviewed?


(WIP) Transport

This PR is based on #8
A transport.rs module implements a wrapper type for TCP functionality. It also simplifies the handshake process and enforces the use of correctly constructed Noise channels when sending or receiving messages using TCP streams.

Next considerations:

Maybe there's a clean way to avoid code duplication here
Use mio or similar to avoid relying on thread::sleep(1)
Integrate Tor support
Add breaking tests

Can you rebase on master ?

 Will let you merge so you can acknowledge / double check.

ACK 686e39e


Plugin adds extra text to label and button elements.

I am experiencing odd behavior related to this plugin and am looking for insight and context.
When I drag a block containing a label or button tag, SOMETHING is inserting text into the tag. On label tags, "Label" gets inserted, and on  button tags, Send gets inserted.
Look at screenshot:

i've tried to duplicating the error using jsFiddle but cannot duplicate. I am hoping someone might have insight or other feedback on why this might be happening
jsFiddle: https://jsfiddle.net/fxpmgcLu/1/
Basically, if i do not include this plugin (in my instance, everything is fine and dandy. Otherwise, my label and button tags get this extra text. I suspect this "bug" is more my fault rather than a bug in the plugin. Still, it is odd that everything is ok when I take out this plug

Hi @stljeff1 that looks like an old issue with the previous version of this plugin, ensure to use the latest version.

Hi, this is still happening on the version 2.0.5 available as the "latest" on npmjs


GRL - new standard examples and advanced examples

Some new PGs and advanced examples page.

The addpoints example will work after I create a GreasedLine PR. I started to add a third material type, SimpleMaterial. It will take some time to finish it, so the PR will be a bit delayed.

there is a small conflict, and - is it ready to be merged, or would you rather merge after the code is available?

Hello! Sorry for the late response. The emails from github started to land in the spam folder. I will add documentation for the simple greased line material (the code PR is ready) and resolve the conflict today.

Is this ready to be merged?

Is this ready to be merged?

Sure


Roost Collector impossible to craft

there is a glitch where roost collector's chicken part is a pink/black checker pattern and is impossible to craft.

I have noticed that too, although the roost chicken is showing up in JEI if you search for a chicken. Maybe an ID mismatch.

Any progress on this? I have the same issue.


dragonboat: NodeDeleted event

When deleting a node, it stops as if it just terminates and the node itself does not know that it was deleted.
For example, we want to stop a node in systemd after deletion with exitcode such that it does not restart, but in the current case there is no difference between deletion and termination.
Perhaps there are some other workarounds for this? I would like to avoid unnecessary proposals before removing the node from the raft.

Thanks for the PR. will review during the last week of July. Sorry for the delay - was out of town.

Thanks for the PR. It looks good to me, merged.
In case you have noticed, Dragonboat's next release will be a v4 release with breaking changes to its public APIs. I'd expect such change to have minimal impacts on existing users and I estimate that most users would spend less than 15 minutes on necessary changes required for adopting the v4.

Thanks! Could you tell when v4 will be released?


WIP - Remove initcontainer and process secrets passed as input

There are many goals achieved by this patch:

we're able to remove (entirely) the initcontainer and the related scripts that are no longer required to start the service

kolla is still used to copy additional files and templates from src to dst, as they rendered accordingly (secrets for sensitive information and configmap for regular overrides) and mounted to the destination directory

Controllers are able to parse many secrets referenced by the CustomServiceConfigSecrets parameter and merge them into a single secret (04-secret.conf) which is passed to the deployment and mounted to the target pod

Still WIP but good progress so far on the main goal.

This is too old at this point and all this patch has been reworked in https://github.com/openstack-k8s-operators/glance-operator/pull/295. Closing in favor of https://github.com/openstack-k8s-operators/glance-operator/pull/295


Add signal desktop

Signal has a desktop application https://signal.org/download/# that would be great to have.

Added in 1008ac635c190dc8a8a9cbf085ae510d117c7dda


Change \AMQPExchange::publish route arg default value

AMQPExchange::publish() expects parameter 2 to be string, null given

I'm not quite sure that '' will be the better choice for the default value.
Based on the source code of method arguments parsing we can see, that for a second parameter we have s! directive, which means that null values are explicitly allowed.

directive, which means that null values are explicitly allowed

If you try to pass route value null to publish it'll generate error from issue body.
Can't send test example because eval.org has no amqp

I've just tried to run the following code:
<?php /** @noinspection PhpUnhandledExceptionInspection */

// Create a connection
$connection = new AMQPConnection(['host'=>'localhost','port'=>5672,'password'=>'guest','login'=>'guest']);
$connection->connect();
//Create and declare channel
$channel = new AMQPChannel($connection);
try {
    //Declare Exchange
    $exchange_name = 'logs';
    $exchange = new AMQPExchange($channel);
    $exchange->setType(AMQP_EX_TYPE_FANOUT);
    $exchange->setName($exchange_name);
    $exchange->declareExchange();
    //Do not declasre the queue name by setting AMQPQueue::setName()
    $queue = new AMQPQueue($channel);
    $queue->setFlags(AMQP_EXCLUSIVE);
    $queue->declareQueue();
    $queue->bind($exchange_name,$queue->getName());
    echo sprintf("Queue Name: %s", $queue->getName()), PHP_EOL;
} catch(Exception $ex) {
    print_r($ex);
}
//Read from stdin
$message = implode(' ',array_slice($argv,1));
if(empty($message))
    $message = "info: Hello World!";
$exchange->publish($message, null); //NOTE I'm passing null here
echo " [X] Sent {$message}", PHP_EOL;
$connection->disconnect();

and it works as expected.
I've used: docker run --hostname my-rabbit --name some-rabbit -p 5672:5672 rabbitmq:3 to run server and have amqp    1.9.4   stable.

@MaXal please add declare(strict_types=1); to your code.
vagrant@vagrant-centos65 /vagrant head -n5 amqp.php
<?php

declare(strict_types=1);

// Create a connection
vagrant@vagrant-centos65 /vagrant php amqp.php
Queue Name: amq.gen-DUspfHEF0FtCf4OzKlnAZw
PHP Fatal error:  Uncaught TypeError: AMQPExchange::publish() expects parameter 2 to be string, null given in /vagrant/amqp.php:31
Stack trace:
#0 /vagrant/amqp.php(31): AMQPExchange->publish('info: Hello Wor...', NULL)
#1 {main}
  thrown in /vagrant/amqp.php on line 31
vagrant@vagrant-centos65 /vagrant php -v
PHP 7.3.5 (cli) (built: May  1 2019 10:02:54) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.5, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.5, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.7.2, Copyright (c) 2002-2019, by Derick Rethans
vagrant@vagrant-centos65 /vagrant php -i | grep -E '^amqp$' -A2
amqp

Version => 1.9.4


Switch from TSLint to typescript-eslint

This repository still uses TSLint, which is being deprecated: https://github.com/palantir/tslint/issues/4534. It'd be great to move it over to typescript-eslint to no longer use deprecated packages.
Protip: tslint-to-eslint-config is the recommended package to do so!

i would like to work on this

@JoshuaKGoldberg
https://github.com/general-language-syntax/gls-cli/pull/49


I can't download spells

I have teh cobalt Cookie ok, but I can't import spells. I've buy it in d&d beyond and I want to import it in Foundry but once I click Spell Munch it begins but never ends. I tryed several times. It only says:
Downloading Spells...
Parsing Spell Data..
And I can wait for an hour but nothing, the new spells doesn´t appear.
What it can be? Maybe that I'm using the babel spanish traduction module?
I'm doing all well acording to the tutorial videos...
Thanks

This maybe easier to fix over on the discord. I need some more information:

Version of Foundry
Version of D&D5e
Version of DDB Importer
Have you tried with all other modules disabled? (If not, please do this)
Open the browser dev console (F!") and see if any errors appear during import.


WIP: Add throttling for JMS sending, close #3587

Works on my machine :) Still needs tests and maybe documentation.
Questions: What kind of tests are needed. How is throttling tested in the http version, via an integration spec?
Do I need to update the documentation?

[ ] Tests
[ ] Docs?

I will change the mentioned things. How about tests?

I don't think it's worth adding tests for what you've changed (I mean, it's pretty complicated to test and the change is pretty straightforward).
It would be great to have tests on Throttler, though, but that's another matter.


MSAL React / Azure AD B2C AuthProvider sample request

Can you please provide us with a sample that demonstrates how to create an authentication provider using MSAL React & Create React App?
I managed to find the following resources:
https://medium.com/ascentic-technology/authentication-with-msal-js-2fe281098038 (good starting point but uses older MSAL libraries + uses class components. So it's a little bit outdated. https://gist.github.com/ayeshnipun/77bae1b89dc1f69c8c6d4e44d140bd33#file-auth-provider-js (Authentication provider)
I also found this one:
https://github.com/microsoftgraph/msgraph-sample-reactspa
This one kind of demonstrates what I'm after (https://github.com/microsoftgraph/msgraph-sample-reactspa/blob/main/graph-tutorial/src/AppContext.tsx) but it also adds several other concepts. It would be nice to have like a sample SPA in this repo with only login and logout using a well-architected authentication provider pattern/solution.
I think this would be a great idea for an article on Microsoft docs and in this repo.
What I would like to see in that article/sample SPA:

The SPA should be based on Create React App
The react app should integrate with Azure AD B2C
The sample should contain a well-structured AuthProvider react function component for the most common scenarios (log in, log out etc)
The UI should have protected routes and non-protected routes (I'm thinking a simple react router dashboard type of sample with a spinner/loader/splashscreen, login, logout, registration, reset password etc)
The AuthProvider react component should handle the authenticated / unauthenticated user
If authenticated you should be able to see the protected routes
If not authenticated you should not be able to see the protected routes
Show how to do login and logout with both redirect and pop-up (like in the other samples in this repo)
Both a .js and .tsx version of the sample

Again it would be nice to see this type of info somewhere and that you could use as a starting point.
Also, I'm curious about whether you know of any other resources where I can read more about how to build your own authentication provider using MSAL React + Azure AD B2C?

Hi @spacecat, Thanks for reaching out. Let me look at the articles you sent, and I will get back to you with a response as soon as possible.

Hi @spacecat. Apologies for the late response. I went through the samples and the articles you sent. I needed help seeing the benefits of using an AuthProvider class using msal-react. In msal-react, you can easily use the hooks to perform the actions in the AuthProvider class without creating it. Why would you like us to use an AuthProvider class in the samples, and what are its benefits?

Hi, and thank you for the reply.
I purchased https://themeforest.net/item/metronic-responsive-admin-dashboard-template/4021469 a few weeks ago - it's a complete React application. And I've been studying it and in particular the authentication components.
Now what I want to do is to take their auth provider and replace it with MSAL React. And I'm not sure how to do that? I've asked in their support support forum if they had any suggestions and this is the response that I got:

We aren't experts in msal.
From my point of you, would be better to copy AuthProvider and rewrite it in the msal way (and then use it), instead of wrapping AuthProvider.

Here's the entire thread just for completeness: https://devs.keenthemes.com/question/how-to-replace-authprovider-with-microsoft-authentication-library-for-react-msal-react
And here is the AuthProvider they're referring to:
import {
  FC,
  useState,
  useEffect,
  createContext,
  useContext,
  useRef,
  Dispatch,
  SetStateAction,
} from 'react'
import {LayoutSplashScreen} from '../../../../_metronic/layout/core'
import {AuthModel, UserModel} from './_models'
import * as authHelper from './AuthHelpers'
import {getUserByToken} from './_requests'
import {WithChildren} from '../../../../_metronic/helpers'

type AuthContextProps = {
  auth: AuthModel | undefined
  saveAuth: (auth: AuthModel | undefined) => void
  currentUser: UserModel | undefined
  setCurrentUser: Dispatch<SetStateAction<UserModel | undefined>>
  logout: () => void
}

const initAuthContextPropsState = {
  auth: authHelper.getAuth(),
  saveAuth: () => {},
  currentUser: undefined,
  setCurrentUser: () => {},
  logout: () => {},
}

const AuthContext = createContext<AuthContextProps>(initAuthContextPropsState)

const useAuth = () => {
  return useContext(AuthContext)
}

const AuthProvider: FC<WithChildren> = ({children}) => {
  const [auth, setAuth] = useState<AuthModel | undefined>(authHelper.getAuth())
  const [currentUser, setCurrentUser] = useState<UserModel | undefined>()
  const saveAuth = (auth: AuthModel | undefined) => {
    setAuth(auth)
    if (auth) {
      authHelper.setAuth(auth)
    } else {
      authHelper.removeAuth()
    }
  }

  const logout = () => {
    saveAuth(undefined)
    setCurrentUser(undefined)
  }

  return (
    <AuthContext.Provider value={{auth, saveAuth, currentUser, setCurrentUser, logout}}>
      {children}
    </AuthContext.Provider>
  )
}

const AuthInit: FC<WithChildren> = ({children}) => {
  const {auth, logout, setCurrentUser} = useAuth()
  const didRequest = useRef(false)
  const [showSplashScreen, setShowSplashScreen] = useState(true)
  // We should request user by authToken (IN OUR EXAMPLE IT'S API_TOKEN) before rendering the application
  useEffect(() => {
    const requestUser = async (apiToken: string) => {
      try {
        if (!didRequest.current) {
          const {data} = await getUserByToken(apiToken)
          if (data) {
            setCurrentUser(data)
          }
        }
      } catch (error) {
        console.error(error)
        if (!didRequest.current) {
          logout()
        }
      } finally {
        setShowSplashScreen(false)
      }

      return () => (didRequest.current = true)
    }

    if (auth && auth.api_token) {
      requestUser(auth.api_token)
    } else {
      logout()
      setShowSplashScreen(false)
    }
    // eslint-disable-next-line
  }, [])

  return showSplashScreen ? <LayoutSplashScreen /> : <>{children}</>
}

export {AuthProvider, AuthInit, useAuth}

Here's how they use their auth provider from the Login component:
/* eslint-disable jsx-a11y/anchor-is-valid */
import {useState} from 'react'
import * as Yup from 'yup'
import clsx from 'clsx'
import {Link} from 'react-router-dom'
import {useFormik} from 'formik'
import {getUserByToken, login} from '../core/_requests'
import {toAbsoluteUrl} from '../../../../_metronic/helpers'
import {useAuth} from '../core/Auth'

const loginSchema = Yup.object().shape({
  email: Yup.string()
    .email('Wrong email format')
    .min(3, 'Minimum 3 symbols')
    .max(50, 'Maximum 50 symbols')
    .required('Email is required'),
  password: Yup.string()
    .min(3, 'Minimum 3 symbols')
    .max(50, 'Maximum 50 symbols')
    .required('Password is required'),
})

const initialValues = {
  email<EMAIL_ADDRESS>  password: 'demo',
}

/*
  Formik+YUP+Typescript:
  https://jaredpalmer.com/formik/docs/tutorial#getfieldprops
<EMAIL_ADDRESS>*/

export function Login() {
  const [loading, setLoading] = useState(false)
  const {saveAuth, setCurrentUser} = useAuth()

  const formik = useFormik({
    initialValues,
    validationSchema: loginSchema,
    onSubmit: async (values, {setStatus, setSubmitting}) => {
      setLoading(true)
      try {
        const {data: auth} = await login(values.email, values.password)
        saveAuth(auth)
        const {data: user} = await getUserByToken(auth.api_token)
        setCurrentUser(user)
      } catch (error) {
        console.error(error)
        saveAuth(undefined)
        setStatus('The login details are incorrect')
        setSubmitting(false)
        setLoading(false)
      }
    },
  })

  return (
    <form
     ...
    </form>
  )
}

Models:
export interface AuthModel {
  api_token: string
  refreshToken?: string
}

export interface UserModel {
  id: number
  username: string
  password: string | undefined
  email: string
  first_name: string
  last_name: string
  fullname?: string
  occupation?: string
  companyName?: string
  phone?: string
  roles?: Array<number>
  pic?: string
  language?: 'en' | 'de' | 'es' | 'fr' | 'ja' | 'zh' | 'ru'
  timeZone?: string
  website?: 'https://keenthemes.com'
  emailSettings?: UserEmailSettingsModel
  auth?: AuthModel
  communication?: UserCommunicationModel
  address?: UserAddressModel
  socialNetworks?: UserSocialNetworksModel
}

index.tsx
import {createRoot} from 'react-dom/client'
// Axios
import axios from 'axios'
import {Chart, registerables} from 'chart.js'
import {QueryClient, QueryClientProvider} from 'react-query'
import {ReactQueryDevtools} from 'react-query/devtools'
// Apps
import {MetronicI18nProvider} from './_metronic/i18n/Metronici18n'
/**
 * TIP: Replace this style import with rtl styles to enable rtl mode
 *
 * import './_metronic/assets/css/style.rtl.css'
 **/
import './_metronic/assets/sass/style.scss'
import './_metronic/assets/sass/plugins.scss'
import './_metronic/assets/sass/style.react.scss'
import {AppRoutes} from './app/routing/AppRoutes'
import {AuthProvider, setupAxios} from './app/modules/auth'
/**
 * Creates `axios-mock-adapter` instance for provided `axios` instance, add
 * basic Metronic mocks and returns it.
 *
 * @see https://github.com/ctimmerm/axios-mock-adapter
 */
/**
 * Inject Metronic interceptors for axios.
 *
 * @see https://github.com/axios/axios#interceptors
 */
setupAxios(axios)
Chart.register(...registerables)

const queryClient = new QueryClient()
const container = document.getElementById('root')
if (container) {
  createRoot(container).render(
    <QueryClientProvider client={queryClient}>
      <MetronicI18nProvider>
        <AuthProvider>
          <AppRoutes />
        </AuthProvider>
      </MetronicI18nProvider>
      <ReactQueryDevtools initialIsOpen={false} />
    </QueryClientProvider>
  )
}

AppRoutes.tsx
/**
 * High level router.
 *
 * Note: It's recommended to compose related routes in internal router
 * components (e.g: `src/app/modules/Auth/pages/AuthPage`, `src/app/BasePage`).
 */

import {FC} from 'react'
import {Routes, Route, BrowserRouter, Navigate} from 'react-router-dom'
import {PrivateRoutes} from './PrivateRoutes'
import {ErrorsPage} from '../modules/errors/ErrorsPage'
import {Logout, AuthPage, useAuth} from '../modules/auth'
import {App} from '../App'

/**
 * Base URL of the website.
 *
 * @see https://facebook.github.io/create-react-app/docs/using-the-public-folder
 */
const {PUBLIC_URL} = process.env

const AppRoutes: FC = () => {
  const {currentUser} = useAuth()
  return (
    <BrowserRouter basename={PUBLIC_URL}>
      <Routes>
        <Route element={<App />}>
          <Route path='error/*' element={<ErrorsPage />} />
          <Route path='logout' element={<Logout />} />
          {currentUser ? (
            <>
              <Route path='/*' element={<PrivateRoutes />} />
              <Route index element={<Navigate to='/dashboard' />} />
            </>
          ) : (
            <>
              <Route path='auth/*' element={<AuthPage />} />
              <Route path='*' element={<Navigate to='/auth' />} />
            </>
          )}
        </Route>
      </Routes>
    </BrowserRouter>
  )
}

export {AppRoutes}

App.tsx
import {Suspense} from 'react'
import {Outlet} from 'react-router-dom'
import {I18nProvider} from '../_metronic/i18n/i18nProvider'
import {LayoutProvider, LayoutSplashScreen} from '../_metronic/layout/core'
import {MasterInit} from '../_metronic/layout/MasterInit'
import {AuthInit} from './modules/auth'

const App = () => {
  return (
    <Suspense fallback={<LayoutSplashScreen />}>
      <I18nProvider>
        <LayoutProvider>
          <AuthInit>
            <Outlet />
            <MasterInit />
          </AuthInit>
        </LayoutProvider>
      </I18nProvider>
    </Suspense>
  )
}

export {App}

AuthPage.tsx
import {Route, Routes} from 'react-router-dom'
import {Registration} from './components/Registration'
import {ForgotPassword} from './components/ForgotPassword'
import {Login} from './components/Login'
import {AuthLayout} from './AuthLayout'

const AuthPage = () => (
  <Routes>
    <Route element={<AuthLayout />}>
      <Route path='login' element={<Login />} />
      <Route path='registration' element={<Registration />} />
      <Route path='forgot-password' element={<ForgotPassword />} />
      <Route index element={<Login />} />
    </Route>
  </Routes>
)

export {AuthPage}

And now I'm building my own auth provider using MSAL React - I'm using https://github.com/Azure-Samples/ms-identity-javascript-react-tutorial/blob/main/1-Authentication/2-sign-in-b2c/README.md as my starting point:
import { useMsal } from '@azure/msal-react';
import { createContext, useState } from 'react';
import { loginRequest } from './authConfig';

export const AuthProviderContext = createContext({
    logIn: undefined,
    logOut: undefined
});

export default function AuthProvider({ children }) {
    const auth = useAuthProviderContext();

    return (
        <AuthProviderContext.Provider value={auth}>
            {children}
        </AuthProviderContext.Provider>
    );
}

function useAuthProviderContext() {
    const { instance } = useMsal();

    const logIn = async () => {
        console.log('LOGGING IN...');
        await instance.loginRedirect(loginRequest);
    };

    const logOut = async () => {
        console.log('LOGGING OUT...');
        await instance.logoutRedirect();
    };

    return {
        logIn,
        logOut
    };
}

index.js
import React from "react";
import ReactDOM from "react-dom";
import { PublicClientApplication, EventType } from "@azure/msal-browser";
import App from "./App.jsx";
import { msalConfig } from "./authConfig";
import "bootstrap/dist/css/bootstrap.min.css";
import "./styles/index.css";

export const msalInstance = new PublicClientApplication(msalConfig);

msalInstance.addEventCallback(event => {
    if (event.eventType === EventType.LOGIN_SUCCESS) {
        console.log(event);
        msalInstance.setActiveAccount(event.payload.account);
    }
});

ReactDOM.render(
    <React.StrictMode>
        <App msalInstance={msalInstance} />
    </React.StrictMode>,
    document.getElementById("root")
);

App.jsx - And here I'm wrapping my AuthProvider with MsalProvider.
import React, { useState, useEffect } from "react";
import { MsalProvider, AuthenticatedTemplate, UnauthenticatedTemplate, useMsal } from "@azure/msal-react";
import { EventType, InteractionType } from "@azure/msal-browser";
import { msalConfig, b2cPolicies } from "./authConfig";
import { PageLayout, IdTokenClaims } from "./ui.jsx";
import Button from "react-bootstrap/Button";
import "./styles/App.css";
import AuthProvider from "./auth-provider";

const IdTokenContent = () => {
    const { accounts } = useMsal();
    const [idTokenClaims, setIdTokenClaims] = useState(null);

    function GetIdTokenClaims() {
        setIdTokenClaims(accounts[0].idTokenClaims)
    }

    return (
        <>

Welcome {accounts[0].name}

            {idTokenClaims ?
                <IdTokenClaims idTokenClaims={idTokenClaims} />
                :
                <Button variant="secondary" onClick={GetIdTokenClaims}>View ID Token Claims</Button>
            }
        </>
    );
};

const MainContent = () => {
    const { instance } = useMsal();

    useEffect(() => {
        const callbackId = instance.addEventCallback((event) => {
            if (event.eventType === EventType.LOGIN_FAILURE) {
                if (event.error && event.error.errorMessage.indexOf("AADB2C90118") > -1) {
                    if (event.interactionType === InteractionType.Redirect) {
                        instance.loginRedirect(b2cPolicies.authorities.forgotPassword);
                    } else if (event.interactionType === InteractionType.Popup) {
                        instance.loginPopup(b2cPolicies.authorities.forgotPassword)
                            .catch(e => {
                                return;
                            });
                    }
                }
            }

            if (event.eventType === EventType.LOGIN_SUCCESS) {
                if (event?.payload) {
                    if (event.payload.idTokenClaims["acr"] === b2cPolicies.names.forgotPassword) {
                        window.alert("Password has been reset successfully. \nPlease sign-in with your new password");
                        return instance.logout();
                    }
                }
            }
        });

        return () => {
            if (callbackId) {
                instance.removeEventCallback(callbackId);
            }
        };
    }, []);

    return (

            <AuthenticatedTemplate>
                <IdTokenContent />
            </AuthenticatedTemplate>

            <UnauthenticatedTemplate>

Please sign-in to see your profile information.

            </UnauthenticatedTemplate>

    );
};

export default function App({ msalInstance }) {
    return (
        <MsalProvider instance={msalInstance}>
            <AuthProvider>
                <PageLayout>
                    <MainContent />
                </PageLayout>
            </AuthProvider>
        </MsalProvider>
    );
}

ui.jsx - And here I'm using my auth provider and calling authProviderContext.logOut and authProviderContext.logIn.
import React from "react";
import { AuthenticatedTemplate, UnauthenticatedTemplate, useMsal } from "@azure/msal-react";
import { Navbar, Button, Dropdown, DropdownButton } from "react-bootstrap";
import { loginRequest, b2cPolicies } from "./authConfig";
import { useContext, useState, useEffect } from 'react';
import { AuthProviderContext } from './auth-provider';

const NavigationBar = () => {
    const { instance } = useMsal();
    const authProviderContext = useContext(AuthProviderContext);

    const handleLogin = () => {
        instance.loginPopup(loginRequest)
        .catch((error) => console.log(error))
    }

    return (
        <>
            <AuthenticatedTemplate>

                    <Button variant="info" onClick={() => instance.loginPopup(b2cPolicies.authorities.editProfile)} className="ml-auto">Edit Profile</Button>
                    <DropdownButton variant="warning" className="ml-auto" drop="left" title="Sign Out">
                        <Dropdown.Item as="button" onClick={() => instance.logoutPopup({ postLogoutRedirectUri: "/", mainWindowRedirectUri: "/" })}>Sign out using Popup</Dropdown.Item>
                        <Dropdown.Item as="button" onClick={() => instance.logoutRedirect({ postLogoutRedirectUri: "/" })}>Sign out using Redirect</Dropdown.Item>
                        <Dropdown.Item as="button" onClick={authProviderContext.logOut}>LOG OUT</Dropdown.Item>
                    </DropdownButton>

            </AuthenticatedTemplate>
            <UnauthenticatedTemplate>
                <DropdownButton variant="secondary" className="ml-auto" drop="left" title="Sign In">
                    <Dropdown.Item as="button" onClick={handleLogin}>Sign in using Popup</Dropdown.Item>
                    <Dropdown.Item as="button" onClick={() => instance.loginRedirect(loginRequest)}>Sign in using Redirect</Dropdown.Item>
                    <Dropdown.Item as="button" onClick={authProviderContext.logIn}>LOG IN</Dropdown.Item>
                </DropdownButton>
            </UnauthenticatedTemplate>
        </>
    );
};

export const PageLayout = (props) => {
    const [username, setUsername] = useState('');
    const { instance } = useMsal();

    useEffect(() => {
        const currentAccount = instance.getActiveAccount();

        if (currentAccount) {
            setUsername(currentAccount.username);
        }

    }, [instance]);

    return (
        <>
            <Navbar bg="primary" variant="dark">
                Microsoft identity platform
                <NavigationBar />
            </Navbar>

Welcome to the Microsoft Authentication Library For React Tutorial

            {props.children}

            <AuthenticatedTemplate>

                    How did we do?
                         Share your experience!

                Username: {username}
            </AuthenticatedTemplate>
        </>
    );
};

export const IdTokenClaims = (props) => {
    return (

Audience:  {props.idTokenClaims.aud}

Issuer:  {props.idTokenClaims.iss}

OID:  {props.idTokenClaims.oid}

UPN:  {props.idTokenClaims.preferred_username}

    );
}

I would then take my auth provider and replace theirs with mine.

Why would you like us to use an AuthProvider class in the samples, and what are its benefits?

I've 15+ years of experience in .NET/Web development as a full-stack developer but I've only built very little in React. So I can't really say what the actual benefit would be other than you would have all of your auth logic (login, logout, etc) in one place and then you can call them from anywhere in your app.
And also I think this is probably how you'd typically build a React app with auth by having a separate component handling all of that functionality.
And one last reason would be so that devs not so familiar with MSAL React and authentication in a real world app could benefit from seeing how it's done in the real world. I think having those types of samples would be invaluable.

You can drop the AuthProvider class and use msal-react out of the box, as shown in the samples, or you can create an AuthProvider class and replace it with the one they provided in the tutorial. Both approaches will work fine. Here are more resources that can help you with msal-react and b2c:

Samples in the MSAL.js repo.
MSAL-React documentation in the MSAL.js repo.
Check our video tutorial on MSAL react.
What is Azure Active Directory B2C.

Unfortunately, we don't have any implementation for msal-react with an AuthProvider class. I will speak to my team about your feedback and see what we can do with our samples in the future.

Thank you, I think I've got a good idea now on how to move forward.


Add about/forum into navigation bar - fixed external link

@ineswq sorry I should've checked it more thoroughly. I apologize for any inconvenience it may have caused :(
I've updated the external link which should resolve #939
I'm using storybook to test it and it shows the correct link (bottom left):

Comparison with other navigation bar link:

@ineswq I fixed the sync issue! Let me know if there are any other changes I need to make :) Thanks!


[bug] The build results on the Mac platform are confusing. The aarch64.dmg file cannot be launched on Macs with Intel, M1, and M2 chips, while the x64.dmg file can be successfully launched on Intel, M1, and M2.

The build results on the Mac platform are confusing. The aarch64.dmg file cannot be launched on Macs with Intel, M1, and M2 chips, while the x64.dmg file can be successfully launched on Intel, M1, and M2.

According to the official documentation, aarch64 is intended for Apple chips, while x64 is meant for Intel chips. However, the actual results are contrary to this description, which is quite confusing. I am unsure whether this discrepancy is due to a bug in tauri-action or if I am using it incorrectly.
My test demo：https://github.com/heneyin/tauri-demo/releases/tag/v0.0.0
Thanks

im having the same issue. the arch build shows as corrupted whereas the x86 version loads fine. im on a M2 macbook.
https://github.com/ImLunaHey/cozy-game/releases

macos is simply stricter about arm apps and now requires it to be signed. Until Apple fixes this, you can make it behave like x86 apps by signing it with an empty certificate, to do this, add "signingIdentity": "-" to your tauri.conf.json file (inside tauri.bundle.macOS.

why is this closed? currently the docs suggest you can use this and it doesn't work..
shouldnt the docs be updated?

I closed it because it's not a tauri-action specific problem, if you build on a local macos system and then try it on another it will have the same issue.
It's kinda tracked here https://github.com/tauri-apps/tauri/issues/8763 and also on the radar for the v2 docs.


Not working with Vagrant Docker Provider

Probably obscure use case and not a priority but it might have a simple fix...
If you try to launch this VM as the underlying host for the vagrant docker provider (https://docs.vagrantup.com/v2/docker/basics.html) it errors on rsync along the lines of:
(Dont really know what vagrant and docker provider are doing at this point...)
Host path: /Users/admin/Stack/
Guest path: /var/lib/docker/docker_1452622952_51215
Command: rsync --verbose --archive --delete -z --copy-links --no-owner --no-group --rsync-path sudo rsync -e ssh -p 2222 -o StrictHostKeyChecking=no -o IdentitiesOnly=true -o UserKnownHostsFile=/dev/null -i '/Users/admin/Stack/RancherOSHost/.vagrant/machines/default/virtualbox/private_key' --exclude .vagrant/ /Users/admin/Stack/ rancher@<IP_ADDRESS>:/var/lib/docker/docker_1452622952_51215

Error: Warning: Permanently added '[<IP_ADDRESS>]:2222' (RSA) to the list of known hosts.
rsync: This rsync lacks old-style --compress due to its external zlib.  Try -zz.
rsync error: syntax or usage error (code 1) at main.c(1554) [server=3.1.1]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-42/rsync/io.c(452) [sender=2.6.9]

I believe rsync on mac was outdated


Fix homepage link

Fixes #1408
Screenshots

Coverage remained the same at 84.223% when pulling b95cfab48c82bda0ddc351b1f682aa593be7936f on aayush-05:fixHomepageLink into ba28074c410e2180f23cf293addeb27359bc8655 on CircuitVerse:master.

@nitin10s @tachyons please have a look at this


GEDI L3 VEDA Guidelines

Reference ticket: https://github.com/orgs/NASA-IMPACT/projects/29?pane=issue&itemId=30816576
Updated GEDI_L3 per new guidelines, added new sections, readjusted "About the Data"

Thanks!! Will wait until this afternoon to merge in case anyone else has any feedback