Google api refresh_token null and how to refresh access token

I use HWIO Bundle for google api and when I have response from google     refreshToken = null why? How to refresh token
oAuthToken = {HWI\Bundle\OAuthBundle\Security\Core\Authentication\Token\OAuthToken} [11]
accessToken = "ya29.Ci8lA1JTu9CB81dOFy-nzszViRgCI2CvvKVrCd0Lq-8I0QR_dIrl-_7RccdGt1Islg"
rawToken = {array} [4]
 access_token = "ya29.Ci8lA1JTu9CB81dOFy-nzszViRgCI2CvvKVrCd0Lq-8I0QR_dIrl-_7RccdGt1Islg"
 token_type = "Bearer"
 expires_in = 3578
id_token = "xxxxx"
refreshToken = null
expiresIn = 3578
createdAt =<PHONE_NUMBER>
tokenSecret = null
resourceOwnerName = null

because in "name": "google/apiclient", "version": "1.1.7" in function need refresh_token
 public function getRefreshToken()
 {
  if (array_key_exists('refresh_token', $this->token)) {
    return $this->token['refresh_token'];
  } else {
    return null;
  }
 }

how to refresh token and how to with token get refresh token, for refresh token ?

Click the edit button next to "Authorizing applications and sites".
and not find how to enable refresh token

Try
$client->setAccessType ("offline");
$client->setApprovalPrompt ("force");

`$client = $this->get('artel.google.api.client');
    /** @var CodeUserReference[] $accessToken */
    $accessToken = $this->get('doctrine.orm.entity_manager')->getRepository('ArtelProfileBundle:CodeUserReference')
        ->getReferenceAccessClient($user);
    if ($accessToken) {
        $client->setAccessToken($accessToken[0]->getAccessTokenClient());
    } else {
        $view = $this->view(['No accessToken was found for this user id'], 400);
        return $this->handleView($view);
    }

    $isExpired = $client->isAccessTokenExpired(); // true (bool Returns True if the access_token is expired.)
    $refresh = $client->getRefreshToken(); //null because not gahe refresh token

    $client->getGoogleClient()->setAccessType ("offline"); //your recomendation
    $client->getGoogleClient()->setApprovalPrompt ("force"); //your recomendation

    $isAgainExpired = $client->isAccessTokenExpired(); // still true (expired)

    $service = new \Google_Service_Drive($client->getGoogleClient());
    $file = new \Google_Service_Drive_DriveFile();
    $file->setName($request->request->get('title')
        ? $request->request->get('title')
        : $request->files->get('file')->getClientOriginalName()
    );
    $file->setDescription($request->request->get('description'));
    $file->setMimeType($request->request->get('mimeType')
        ? $request->request->get('mimeType')
        : $request->files->get('file')->getClientMimeType()
    );

    // Set the parent folder.
    if ($request->request->get('parentId') != null) {
        $parent = new Google_Service_Drive_ParentReferen();
        $parent->setId($request->request->get('parentId'));
        $file->setParents(array($parent));
    }

    try {
        $data = $request->files->get('file');

        $createdFile = $service->files->create($file, array(
            'data' => $data,
            'mimeType' => $request->request->get('mimeType')
                ? $request->request->get('mimeType')
                : $request->files->get('file')->getClientMimeType(),
            'uploadType' => 'media'
        ));

        // Uncomment the following line to print the File ID
        // print 'File ID: %s' % $createdFile->getId();
        return View::create()
            ->setStatusCode(200)
            ->setData([$createdFile]);

    } catch (\Exception $e) {
        $view = $this->view((array) $e->getMessage(), 400);
        return $this->handleView($view);
    }`

still have exception - The OAuth 2.0 access token has expired, and a refresh token is not available. Refresh tokens are not returned for responses that were auto-approved.

In my code I assumed $client = new Google_Client();. Also, I am not familiar with the way you request the access token.
For you to get the refresh token, you need to specify access_type and approval_prompt in the same place where you specify scope and redirect_uri.

In my code to $client = new Google_Client() bit in wrapper in constructor.
I get access token from HWIO bundle:

hwi_oauth:     connect:       account_connector: app.provider.user_provider     firewall_name: secured_area     resource_owners:         google:             type:                google             client_id:<PHONE_NUMBER>517-854eeppac1dttr6qvn7g2nn7iio26epg.apps.googleusercontent.com             client_secret:       B5Sp9kj9Q05MYWAi4Xuobl9E             scope:               "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/drive"
and after I get access token I set it in DB. Then in Action I create wrapper for google api (new Google Client ()) and set this client my accesss token from DB. How to refresh my access token? I try in action use function google api lib setAccessType and setApprovalPrompt, but not efect
$client->getGoogleClient()->setAccessType ("offline"); //your recomendation
$client->getGoogleClient()->setApprovalPrompt ("force"); //your recomendation

when I create object wrapper I create new Google Client
    public function __construct(array $config, LoggerInterface $symfonyLogger = null)     {         // True if objects should be returned by the service classes.         // False if associative arrays should be returned (default behavior).         $config['use_objects'] = true;         $client = new \Google_Client($config);         if ($symfonyLogger) {             //BC for Google API 1.0             if (class_exists('\Google_Logger_Psr')) {                 $googleLogger = new \Google_Logger_Psr($client, $symfonyLogger);                 $client->setLogger($googleLogger);             } else {                 $client->setLogger($symfonyLogger);             }         }         $client -> setApplicationName($config['application_name']);         $client -> setClientId($config['oauth2_client_id']);         $client -> setClientSecret($config['oauth2_client_secret']);         $client -> setRedirectUri($config['oauth2_redirect_uri']);         $client -> setDeveloperKey($config['developer_key']);         $this -> client = $client;     }
config this is:
   happy_r_google_api:         application_name: carbon-quanta-137312         oauth2_client_id:<PHONE_NUMBER>517-854eeppac1dttr6qvn7g2nn7iio26epg.apps.googleusercontent.com         oauth2_client_secret: B5Sp9kj9Q05MYWAi4Xuobl9E         oauth2_redirect_uri: null         developer_key: null         site_name: aog.local.com
and if in action I set to Google Client some parameters this is same if I add constructorI, so what I'am doing wrong ?

OK.
So from what I understand, you should add to your config :
access_type: offline
approval_prompt: force

And in your else statement
$client->setAccessType ($config['access_type']);
$client->setApprovalPrompt ($config['approval_prompt']);

Yes, I add to wrapper
        $client -> setAccessType ($config['access_type']);         $client -> setApprovalPrompt ($config['approval_prompt']);
but still have
"The OAuth 2.0 access token has expired, and a refresh token is not available. Refresh tokens are not returned for responses that were auto-approved."
and after rebuild project, I lost function create and now have insert, this is a magic, I dont change version in composer json :)
$createdFile = $service->files->insert($file, array(                 'data' => $data,                 'mimeType' => $request->request->get('mimeType')                     ? $request->request->get('mimeType')                     : $request->files->get('file')->getClientMimeType(),                 'uploadType' => 'media'             ));
early I have
$createdFile = $service->files->create($file, array(                 'data' => $data,                 'mimeType' => $request->request->get('mimeType')                     ? $request->request->get('mimeType')                     : $request->files->get('file')->getClientMimeType(),                 'uploadType' => 'media'             ));

I assume you go through the whole process and open a window for the user to give permission to use the account?
Because, if not, then this is probably your problem:
Refresh tokens are not returned for responses that were auto-approved.
And you need to go through that process, as far as I understand.

when user connect to github first they have window with scope, where user accept this scope and after I have in response accessToken.

The "auto-approval" happens when a user has already accepted the authorization prompt, and so is not prompted again. A refresh token is not returned in this case. You can read more about this here.
I assume when you generate the auth URL (using $client->createAuthUrl), you are not setting approval_prompt=force. You can check this by inspecting the URL's query parameters directly. Setting $client->setApprovalPrompt() in the code above will have no effect, this only has effect if added before the authorization URL is created.

I understan. I get access token from HWIO bundle and I add in config HWIO bundle              access_type:         offline, approval_prompt:     force and in response I have refresh token not null
    google:
        type:                google
        client_id:           xxx
        client_secret:       xxx
        scope:               "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/drive"
        options:
            access_type:         offline
            approval_prompt:     force

@shubaivan it sounds like you figured it out, but if you continue to have issues, I suggest filing an issue with HWIOBundle.

@bshaffer No, I don't have continue problem, now I have refresh_token in response and this issue closed

 * For more information about using OAuth 2.0 to access Google APIs, please see:
 *
 * Please ensure that you have enabled the YouTube Data API for your project.
 */
$OAUTH2_CLIENT_ID = 'xxxxxxxxxxxxxxxx.apps.googleusercontent.com'; // Enter your Client ID here
$OAUTH2_CLIENT_SECRET = 'xxxxxxxxxxxxxx'; // Enter your Client Secret here
$REDIRECT = filter_var('https://developers.google.com/oauthplayground', FILTER_SANITIZE_URL);
$APPNAME = "xxxxx";

$client = new Google_Client();
$client->setClientId($OAUTH2_CLIENT_ID);
$client->setClientSecret($OAUTH2_CLIENT_SECRET);
$client->setScopes('https://www.googleapis.com/auth/youtube');
$client->setRedirectUri($REDIRECT);
$client->setApplicationName($APPNAME);
$client->setAccessType('offline');
$client->setApprovalPrompt('force');

// Define an object that will be used to make all API requests.
$youtube = new Google_Service_YouTube($client);

if (isset($_GET['code'])) {
    if (strval($_SESSION['state']) !== strval($_GET['state'])) {
        die('The session state did not match.');
    }

    $client->authenticate($_GET['code']);
    $_SESSION['token'] = $client->getAccessToken();
}

if (isset($_SESSION['token'])) {
    $client->setAccessToken($_SESSION['token']);
    echo "Access Token: " . json_encode($_SESSION['token']);
}

// Check to ensure that the access token was successfully acquired.
if ($client->getAccessToken()) {
    try {
        // Call the channels.list method to retrieve information about the
        // currently authenticated user's channel.
        $channelsResponse = $youtube->channels->listChannels('contentDetails', array('mine' => 'true'));

        $htmlBody = '';
        foreach ($channelsResponse['items'] as $channel) {
            // Extract the unique playlist ID that identifies the list of videos
            // uploaded to the channel, and then call the playlistItems.list method
            // to retrieve that list.
            $uploadsListId = $channel['contentDetails']['relatedPlaylists']['uploads'];

            $playlistItemsResponse = $youtube->playlistItems->listPlaylistItems('snippet', array(
                'playlistId' => $uploadsListId,
                'maxResults' => 50
            ));

            $htmlBody .= "Videos in list $uploadsListId";
            foreach ($playlistItemsResponse['items'] as $playlistItem) {
                $htmlBody .= sprintf('%s (%s)', $playlistItem['snippet']['title'],
                    $playlistItem['snippet']['resourceId']['videoId']);
            }
            $htmlBody .= '';
        }
    } catch (Google_ServiceException $e) {
        $htmlBody .= sprintf('A service error occurred: %s',
            htmlspecialchars($e->getMessage()));
    } catch (Google_Exception $e) {
        $htmlBody .= sprintf('An client error occurred: %s',
            htmlspecialchars($e->getMessage()));
    }

    $_SESSION['token'] = $client->getAccessToken();
} else {
    $state = mt_rand();
    $client->setState($state);
    $_SESSION['state'] = $state;

    $authUrl = $client->createAuthUrl();
    $htmlBody = <<Authorization Required
You need to authorise access before proceeding.
END;
}
?>
<!doctype html>

My Uploads

// please help me solve this i am not get token

how to get token, for Authorization: Bearer

One should know, not to share there accessToken or any other token in the details.

Hi, any update about this? I'm facing the same issue.


consul-alerts: 0.5.0 -> 0.6.0

Motivation for this change
Changelog: https://github.com/AcalephStorage/consul-alerts/releases/tag/v0.6.0
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
myself

@GrahamcOfBorg build


Fix tfsec/code scanning issues

The code scanning is unhappy with a few things so should fix that.

Also there are some warnings:
Warning: kubernetes.tf:12:17: Warning - List items should be accessed using square brackets (terraform_deprecated_index)
Warning: kubernetes.tf:[7](https://github.com/crushten/terraform_EKS_deploy/actions/runs/3447419711/jobs/5753411470#step:13:8)4:17: Warning - List items should be accessed using square brackets (terraform_deprecated_index)
Warning: kubernetes.tf:7[8](https://github.com/crushten/terraform_EKS_deploy/actions/runs/3447419711/jobs/5753411470#step:13:9):13: Warning - List items should be accessed using square brackets (terraform_deprecated_index)
Warning: kubernetes.tf:78:13: Warning - List items should be accessed using square brackets (terraform_deprecated_index)
Warning: outputs.tf:2[9](https://github.com/crushten/terraform_EKS_deploy/actions/runs/3447419711/jobs/5753411470#step:13:10):17: Warning - List items should be accessed using square brackets (terraform_deprecated_index)
Warning: outputs.tf:29:17: Warning - List items should be accessed using square brackets (terraform_deprecated_index)
Warning: outputs.tf:29:17: Warning - List items should be accessed using square brackets (terraform_deprecated_index)
Warning: variables.tf:[12](https://github.com/crushten/terraform_EKS_deploy/actions/runs/3447419711/jobs/5753411470#step:13:13):1: Warning - variable "appname" is declared but not used (terraform_unused_declarations)

https://aquasecurity.github.io/tfsec/v0.61.3/checks/aws/vpc/no-public-egress-sgr/
https://aquasecurity.github.io/tfsec/v0.61.3/checks/aws/eks/enable-control-plane-logging/
https://aquasecurity.github.io/tfsec/v0.61.3/checks/google/compute/enable-vpc-flow-logs/
https://aquasecurity.github.io/tfsec/v1.0.0/checks/aws/ecr/repository-customer-key/
https://aquasecurity.github.io/tfsec/v1.28.0/checks/aws/eks/no-public-cluster-access-to-cidr/
https://aquasecurity.github.io/tfsec/v1.28.0/checks/aws/ec2/no-public-ip-subnet/
https://aquasecurity.github.io/tfsec/v1.28.0/checks/aws/eks/encrypt-secrets/
https://aquasecurity.github.io/tfsec/v1.1.4/checks/aws/eks/no-public-cluster-access/

Sigh so this is scanning the modules and not the code per se. Just like the other scanners


apcu adapter

memcached adapter will have to wait till this gets merged

I think this PR is ready

You should fix composer.json conflict.
I'll have more time to review PRs during the weekend.

I didn't previously see the conflict. As mentioned above if this gets merged I can PR the memcached adapter and I'll be done with the original contribution

Please correct me if I'm wrong, but this basically doubles memory usage just to satisfy the constraints of the SilentRateLimiter interface, even if the user does not want to use it. Wouldn't it be better if Status::$resetAt has a possible null value when we can't get ttl values from the cache provider like it is the case with APCu?

@Rainrider you are right, the amount of memory needed for this implementation, or any other in which remaining ttl is not returned by the provider, is more than doubled
There is another possible implementation in which you save both counter and timestamp in a single key: "counter::timestamp", but you loose atomic operations such as apcu_inc because you have to retrieve the value, explode, increment the counter and store it again, race conditions are more likely to occur
About not supporting remaining time to reset on an HTTP header I wouldn't consider it. If you have a peak to API rate limiting headers in the wild you'll see it is always there in a way or another (https://stackoverflow.com/questions/16022624/examples-of-http-api-rate-limiting-http-response-headers) there is even a IETF proposal for this headers (https://tools.ietf.org/id/draft-polli-ratelimit-headers-00.html), strange enough they are not standard

I think @Rainrider brought up a good point. Why does default rate limiting implementation needs to be coupled with the logic around $timeKey? The very reason why interfaces are segregated is that the default implementation is intended for scenarios of having rate limit guard clauses in contexts that do not care about status information (i.e. remaining attempts), so it should have at less as possible communication with the back-end, APC in this case.
Try to focus on optimizing limit() and limitSilently() methods for their individual purposes, as if you are writing them in separate classes, without worrying about code reuse. It is completely ok that internally they have completely different flow of operation.

Build is stuck on this one for 2 days... 🤔

It's not stuck, if you take a look you'll see it passed, but github does not reflect it


[TF] install_name_dir workaround for Python and TensorFlow modules.

install_name_dir for the standard library has been changed from @rpath to /usr/lib/swift in https://github.com/apple/swift/pull/24382.
This patch may resolve "Library not loaded: /usr/lib/swift/libswiftTensorFlow.dylib" linker issues: https://github.com/tensorflow/swift-apis/pull/136

Do not merge unless necessary (swift test continues to fail on macOS with linker errors for https://github.com/tensorflow/swift-apis) and tested (swift test no longer fails with this patch).
Personally, I am not able to reproduce the linker errors on macOS with/without this patch.

@Rostepher is the person to ask about this.

Verified that this patch is necessary to avoid Library not loaded: /usr/lib/swift/libswiftTensorFlow.dylib linker issues on macOS.

@swift-ci Please test tensorflow


Issues/3455 lerna build

Fixes #3455
Summary
Made sure that lerna knew about the workspace packages configured for yarn. Had to move React Common to the top to make sure it was built first. Also added scripts to the main package.json for a cleaner interface instead of calling lerna directly from msbuild.

Thanks for taking a look at this @mtrutledge! These changes make sense, but it looks like the CI build is still failing. If you need an extra set of eyes, I'm always happy to help!

Taking a look to see why the CI build is failing. It almost looks like the export bundle is trying to compile the dnn-react-common that is already compiled instead of just packaging it.

If this CI build works will @donker and @valadas please run a couple more tests on their end.


feat(radio/checkbox): show background-color in print stylesheet (#22298)

added color-adjust for radio background-color
added color-adjust for checkbox background-color

Updated pull request by implementing feedback from @crisbeto in #22300 on this branch as well.


Make Umc modular

split features per modules that can be enabled / disabled via settings page.
Example:

backend
frontend
api
...

Changed my mind. Not going to happen


Move Apifox.Apifox 2.2.36 to Ruihu.Apifox 2.2.36

Microsoft Reviewers: Open in CodeFlow

[Policy] Reset Feedback

[Policy] Approved


Objective-C source code

Please include source code in objective-c too.

You can include swift projects in objective-c. There is no plans to write this in objective-c.


Integration Test Templates require AppVeyor WMF 5 build machines

If a DSC Resourse module includes integration tests that are built using the standard Integration test templates then AppVeyor.yml must be configured with os: WMF 5 otherwise the Integration tests will fail because the Resource module will not be able to be located.
This error (or similar) will occur:
The PowerShell DSC resource xauditpolicy does not exist at the PowerShell module path nor is it registered as a WMI DSC resource. + CategoryInfo : InvalidOperation: (root/Microsoft/...gurationManager:String) [], CimException + FullyQualifiedErrorId : DscResourceNotFound + PSComputerName : localhost

Suggest that information regarding this is added to the Integration Test Template file in the comments and/or the TestGuidelines.md document.

My question to this would be is the behavior we want? Personally I'm still targeting WMF4.0 on most of my machines. With no plans at this point of rolling forward to WMF5 anytime soon (though I'd love to just not on the roadmap...) If the default template is WMF5 are we dropping support of WMF4 by default?

I agree with @tysonjhayes , we should make the template compatible with both WMF 4 and 5. There's still many repos which run tests on WMF4 and even after switching them to WMF 5 by default, we may want to introduce test matrix to run on multiple SKUs.

You're both 100% correct. I did some investigation a while back on how this might be done. I'll dig it out and see if I can make it work. I think it will require a minor update to the integration configuration template.

Could you help me understand the dependency as it is currently? I didn't see a command or anything that was 5 specific. But I might have just missed it.

The problem seems to be that DSC in WMF 4.0 seems to ignore the $ENV:PSModule path setting. So when the LCM tries to apply the configuration during the apply phase it can't find the DSV module.
The resolution could be to inject the module path into the integration config file at the time the tests are run.
I recall that I  experimented with this a few months back but didn't fully investigate it if put a wiring solution together.

Here is an example of the error when the machine running the Integration tests isn't WMF5:
The PowerShell DSC resource xauditpolicy does not exist at the PowerShell module path nor is it registered as a WMI DSC resource.
+ CategoryInfo : InvalidOperation: (root/Microsoft/...gurationManager:String) [], CimException
+ FullyQualifiedErrorId : DscResourceNotFound
+ PSComputerName : localhost

Taken from this comment by @athaynes
This week is a bit crazy, but if no one else gets to this by the weekend I'll try and come up with a solution over the weekend.

I haven't made any progress on this one. Has anyone else had any thoughts on this?

Perhaps template should be updating user/machine environment variable instead and then do the cleanup? I believe DSC would pick that one up also in WMF4.

@PlagueHO is this still an issue? Maybe it is resolved? I see this comment in TestHelper https://github.com/PowerShell/DscResource.Tests/blob/62cca028018fcab83df7108f11e4402f5f8e8267/TestHelper.psm1#L360-L363

This is resolved now as the default AppVeyor machine has long moved on. WMF 5 is now default on AppVeyor so I'll close this.


Allow to create translations keys directly from interface

Thanks for this feature, very helpful.
However I'm not convinced by the actual ui/ux:

the md-fab mini button looks a bit weird, too much flashy and not well aligned with the title
The Cancel button seems do to nothing (?)
Only accessible at the top of the page/group

What I would do for this:

an classic fab button at the bottom right
which open a $mdModal with a form
that form contains 3 fields: a select or autocomplete to choose the resource, an input text for the key and a textarea to fill the default translation (eg. English)

I will try to make this from your branch to see what it could look like.

wip in branch feature/add-translation

Thanks for your returns, my UI was a really quick and dirty solution.

Hi @MattKetmo
Is it mergeable or not yet ?

I updated my PR to use the new modal

@MattKetmo Can you review this PR ? We really need this functionality

Looks good. Sorry for the delay.
I've merged it on master and dump it as the dev-master version on cdn.openl10n.io (http://cdn.openl10n.io/app/releases/dev-master/app.js)


sql: user account expiration (role LOGIN option and password expiry via VALID UNTIL option)

PR: https://github.com/cockroachdb/cockroach/pull/45541
From release notes:

The password field (used exclusively for password-based authentication) can now be configured to have an expiration date using the VALID UNTIL attribute, which can be set with ALTER USER/ROLE. Note that the attribute sets an expiration date for the password, not the user account. This is consistent with PostgreSQL. [#45541][#45541] {% comment %}doc{% endcomment %}

Dup of https://github.com/cockroachdb/docs/issues/6882


Adds convenient method to supply IEnumerable of errors to create ErrorValue

Adds a convenient method to supply IEnumerable of errors to create ErrorValue.
Relates to #1001

✅ No public API change.

✅ No public API change.


fix(persist): introduce in-house synchronous Storage interface

Rationale
Currently RQ has createWebStoragePersistor and createAsyncStoragePersistor which assumes that non-web platforms can have async storages only, which is not true. React Native has performant synchronous MMKV adapters support, which can't be used with RQ 3 right now directly because of interface incompatibility and window check(already fixed in v4).
Related discussion: https://github.com/tannerlinsley/react-query/discussions/3667
Changes
Introduce own Storage interface to make possible using createWebStoragePersistor in React Native without TS errors.

:tada: This PR is included in version 4.0.0-beta.23 :tada:
The release is available on:

npm package (@beta dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Code Release

Hi @akshitac8
When are you planning to release the code.
Thanks

Hello @adityac8, thank you for your interest. we plan to release it in the next couple of weeks.

@adityac8 training code is now available :)


Add support for VM extension KeyVaultForWindows

The KeyVaultForWindows extension is helpful for getting certificates onto machines in a Windows IaaS environment.
This is an enhancement request to integrate support for this extension in the CAF module.
Please assign to me and I will submit PR with the update.

hi @jleonelion, Id recommend you have a look at the branch AL-azurerm2931 as we introduce a new way to call for VM extension which improves significantly plan times!

Closing issue.  Changes have been merged.


Allow any AbstractArray

Wooohoo!! I am extremely excited about this package!! I have been hoping for a good EKF package that uses ForwardDiff for a while. This really does look like a great start! :) I think that I will get a lot of use out of it in classes I teach and research I do, and, if it's well-executed, I think it will be something that helps people transition from MATLAB to Julia.
Since I'm probably going to rely on this a lot, I am going to give a few suggestions - I hope they don't seem antagonistic; I just want to make sure the package is as good as possible!
The first suggestion is to allow the use of AbstractArrays everywhere. This will allow people to use their own, more efficient, array types. In particular, using StaticArrays for small arrays can completely avoid the allocations that happen with built-in arrays and result in 10x or even 100x speedups.
This is very simple to support - for example GaussianBelief would look like this:
struct GaussianBelief{V<:AbstractVector,M<:AbstractMatrix}
    μ::V
    Σ::M
end

Thanks for all the feedback. Array abstractions allowed in https://github.com/sisl/GaussianFilters.jl/commit/13b28f28cd5e30038994dd7ea20cce7a24e47ce4

Just by grepping through the repo, I there are still quite a few non-abstract Vector and Matrix. So this might need to be revisited.


I could not use the library

lubo first of all I love your project, but I have had problems when it comes to installing and using the library
$ python3
Python 3.6.2 (v3.6.2:5fd33b5926, Jul 16 2017, 20:11:06)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from . import read_codes, BarcodeType
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name 'read_codes'
>>> from zxinglight import read_codes, BarcodeType
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zxinglight/__init__.py", line 6, in <module>
    from ._zxinglight import zxing_read_codes
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zxinglight/_zxinglight.cpython-36m-darwin.so, 2): Symbol not found: _libiconv
  Referenced from: /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zxinglight/_zxinglight.cpython-36m-darwin.so
  Expected in: flat namespace
 in /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zxinglight/_zxinglight.cpython-36m-darwin.so

I appreciate an early help. regards

Hi. Unfortunately, I don't use macOS but this seems like a linking issue to me. I've noticed folks have been having similar issues in another project, perhaps you'll find some information there.


Uncaught Exception: listen EADDRINUSE <IP_ADDRESS>:5672

An uncaught exception was reported.
Info:
OS: win32
Arch: ia32
GPMDP Version: 3.2.4
Time: Sun May 08 2016 02:25:09 GMT-0400 (Eastern Daylight Time)
Error:
listen EADDRINUSE <IP_ADDRESS>:5672
Error: listen EADDRINUSE <IP_ADDRESS>:5672
    at Object.exports._errnoException (util.js:890:11)
    at exports._exceptionWithHostPort (util.js:913:20)
    at Server._listen2 (net.js:1234:14)
    at listen (net.js:1270:10)
    at net.js:1379:9
    at _combinedTickCallback (internal/process/next_tick.js:77:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)

This issue was created automatically inside the uncaughtException handler

Closing this automatically reported issue as a duplicate of #325


41 webhelp

What are the issues this pull addresses (issue numbers / links)?
#41
Did you add tests to cover your changes (yes/no)?
no
Did you update the documentation accordingly (yes/no)?
no
Did you read the CONTRIBUTING document (yes/no)?
yes
Summary
Added web help button to metal GUI.
Details and comments

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Axel Ismirlian seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi @ismirlia , thank you for adding the help button to the gui that links out to the qiskit metal documentation webpage. This is very nice and really helpful. It looks good to me, we may just want to check the gui runs ok with the new UI files compiled.

This is very nice, I wonder if we could just post a screenshot of what the GUI looks like now with the latest install that Axel made?
Other than that I'm good ￼￼

This is what I see. Is this as-expected?

yes that looks right


@responsive not generating default class

The @responsive functions generate the responsive classes, but seems to not generate the default class.
Exemple :
@responsive {
  .container-fluid {
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
  }
}

.sm:container-fluid {
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
}

.lg:container-fluid {
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
}

.xl:container-fluid {
  padding-left: var(--container-padding);
  padding-right: var(--container-padding);
}

# .container-fluid {} is missing

Hey! Make sure you have @tailwind utilities in your CSS, anything in a @responsive rule is automatically dumped into the utilities layer if you don't manually wrap it in a layer.

Works as expected then 👍🏻

Indeed the problem came exactly from there... I still can't understand why all responsive classes are generated, except the default one
Anyway, thanks !


(documentation) Explain better how data export is working and why we have it

Description

update exporter docs so it has similar entry with retriever
rename Retriever to Cards so it can be used by both retriever and exporter
Changes include

[ ] Bugfix (non-breaking change that solves an issue)
[ ] New feature (non-breaking change that adds functionality)
[ ] Breaking changes (change that is not backward-compatible and/or changes current functionality)

Closes issue(s)

Resolve #661
Checklist

[x] I have tested this code
[ ] I have added unit test to cover this code
[x] I have updated the documentation (README.md and /website/docs)
[x] I have followed the contributing guide

Thanks a lot, @dhanusaputra, this is all good for me to have renamed it to Card.


Port forwarding not working locally

Is this a BUG REPORT or FEATURE REQUEST?:
/kind bug
Description
I have an Openshift PostgreSQL image here: https://github.com/jesperpedersen/openshift-pgsql
Once booted the pod doesn't allow access, but it works from within the pod (step 5).
I did try https://github.com/projectatomic/libpod/issues/661#issuecomment-393632515 but that didn't work, hence a new issue.
The env.txt file contains
PG_DATABASE=mydb
PG_USER_NAME=myuser
PG_USER_PASSWORD=mypass
PG_REPLICATION_NAME=repl
PG_REPLICATION_PASSWORD=replpass
PG_NETWORK_MASK=all

Steps to reproduce the issue:

systemctl start crio
buildah bud -t openshift-pgsql10-master-centos7 .
podman run --env-file env.txt -d -p 5432:5432 openshift-pgsql10-master-centos7:latest
podman ps
podman exec -t 342befd98071 /bin/bash

Describe the results you received:
The command psql -h localhost -p 5432 -U myuser mydb hangs even though podman port 342befd98071 gives
5432/udp -> <IP_ADDRESS>:5432
5432/tcp -> <IP_ADDRESS>:5432

Describe the results you expected:
A prompt to the database.
Additional information you deem important (e.g. issue happens only occasionally):
RPMs:
podman-0.7.3-2.git0791210.fc28.x86_64
containernetworking-cni-0.7.1-1.fc28.x86_64
cri-o-1.11.1-1.git1759204.fc28.x86_64
buildah-1.2-2.gitbe87762.fc28.x86_64
skopeo-0.1.31-5.git0144aa8.fc28.x86_64

Output of podman version:
Version:       0.7.3
Go Version:    go1.10.3
OS/Arch:       linux/amd64

Output of podman info:
host:
  MemFree:<PHONE_NUMBER>
  MemTotal:<PHONE_NUMBER>4
  SwapFree:<PHONE_NUMBER>
  SwapTotal:<PHONE_NUMBER>
  arch: amd64
  cpus: 8
  hostname: localhost.localdomain
  kernel: 4.17.6-200.fc28.x86_64
  os: linux
  uptime: 2h 35m 10.15s (Approximately 0.08 days)
insecure registries:
  registries: []
registries:
  registries:
  - docker.io
  - registry.fedoraproject.org
  - quay.io
  - registry.access.redhat.com
  - registry.centos.org
store:
  ContainerStore:
    number: 13
  GraphDriverName: overlay
  GraphOptions:
  - overlay.override_kernel_check=true
  GraphRoot: /var/lib/containers/storage
  GraphStatus:
    Backing Filesystem: extfs
    Native Overlay Diff: "true"
    Supports d_type: "true"
  ImageStore:
    number: 5
  RunRoot: /var/run/containers/storage

Additional environment details (AWS, VirtualBox, physical, etc.):
F28

Probably a duplicate of #1119 - though it seems like you might not be able to hit the ports from localhost?

Pretty clear we are having significant issues with CNI right now though.
@jesperpedersen Can you try with CRI-O and see if it fails there as well? I want to verify this is definitely a CNI issue.

Yes, this is from localhost.

@mheon Do you have a pointer on how I test with CRI-O ?

@jesperpedersen I tried to construct a tutorial, but it's proving to be more trouble than it's worth - I'll follow up with the CRI-O maintainers and see if they're affected

@jesperpedersen Can you do a dnf info containernetworking-cni? Want to verify if we're seeing the problem on multiple versions

Installed Packages
Name         : containernetworking-cni
Version      : 0.7.1
Release      : 1.fc28
Arch         : x86_64
Size         : 35 M
Source       : containernetworking-cni-0.7.1-1.fc28.src.rpm
Repo         : @System
From repo    : @commandline
Summary      : Libraries for writing CNI plugin
URL          : https://github.com/containernetworking/plugins
License      : ASL 2.0
Description  : The CNI (Container Network Interface) project consists of a specification
             : and libraries for writing plugins to configure network interfaces in Linux
             : containers, along with a number of supported plugins. CNI concerns itself
             : only with network connectivity of containers and removing allocated resources
             : when the container is deleted.

Alright, we're on the same version, then - I think the recent upgrade from 0.6.0 to 0.7.1 broke us. Thanks!
I'm filing a bug against the containernetworking-cni package.

Same issue with
Installed Packages
Name         : containernetworking-cni
Version      : 0.6.0
Release      : 4.fc28
Arch         : x86_64
Size         : 33 M
Source       : containernetworking-cni-0.6.0-4.fc28.src.rpm
Repo         : @System
From repo    : @commandline
Summary      : Libraries for writing CNI plugin
URL          : https://github.com/containernetworking/plugins
License      : ASL 2.0
Description  : The CNI (Container Network Interface) project consists of a specification
             : and libraries for writing plugins to configure network interfaces in Linux
             : containers, along with a number of supported plugins. CNI concerns itself
             : only with network connectivity of containers and removing allocated resources
             : when the container is deleted.

FWIW, just tested #1119 against containernetworking-cni 0.6.0 and the latest Podman and it worked without an issue.

oops, hit the close button by mistake.

@TomSweeneyRedHat I managed to reproduce on F27, but that might have been a fluke.

Talked with the CNI portmap maintainer, seems like it's a conflict with firewalld.

Doing systemctl stop firewalld doesn't help

@jesperpedersen I had to disable firewalld and restart the machine to actually have the conflict fixed - can you try that?

Nope, that didn't work either with both containernetworking-cni-0.6.0 and 0.7.1
strace shows:
socket(AF_INET, SOCK_STREAM, IPPROTO_IP) = 3
setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0
fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
connect(3, {sa_family=AF_INET, sin_port=htons(5432), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = -1 EINPROGRESS (Operation now in progress)
poll([{fd=3, events=POLLOUT|POLLERR}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
getsockname(3, {sa_family=AF_INET, sin_port=htons(45682), sin_addr=inet_addr("<IP_ADDRESS>")}, [128->16]) = 0
poll([{fd=3, events=POLLOUT|POLLERR}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
sendto(3, "\0\0\0\10\4\322\26/", 8, MSG_NOSIGNAL, NULL, 0) = 8
poll([{fd=3, events=POLLIN|POLLERR}], 1, -1

Hi, sorry for the delay here - finally got around to testing/reproducing locally.
I can successfully telnet to 5432 from localhost, so the port is being forwarded.
However, there is definitely a hang in the psql process.

As such, it looks like port forwarding is working, but something about the traffic is not what psql expects, so it's hanging trying to connect.

I'm not 100% sure if this is a Podman bug or a psql bug, given that traffic seems to be flowing between host and container normally.

The psql -h localhost -p 5432 -U myuser mydb works from within the image, so it has to do something with the network bridge.
If that is all external to podman, then we can close here

Adding --network host to podman run makes the command work

I am optimistic that this may have been fixed by #1431 but have not have a chance to test yet

Sorry for the delay - it works with
podman-<IP_ADDRESS>-1.gitdb08685.fc28.x86_64
containernetworking-plugins-0.7.3-2.fc28.x86_64
cri-o-1.11.2-1.git3eac3b2.fc28.x86_64
buildah-1.4-3.git608fa84.fc28.x86_64
skopeo-0.1.31-13.dev.gite3034e1.fc28.x86_64

So, closing.
Thanks !


MP: GO:0031204 - posttranslational protein targeting to membrane, translocation

This term is a bit odd because its a post-targeting step, but based on the def
Definition: "The process in which a protein translocates through the ER membrane posttranslationally."
if it is describing translocation, it should be a descendent of "protein import"

SRP-dependent cotranslational protein targeting to membrane, translocation


Remove private repo URI from redhat overrides and GitHub workflows

Our internal build infrastructure now supports
registry.access.redhat.com in the FROM line. We no longer need to
override that for internal builds.
We don't need to pull-and-tag the public URI in the GitHub workflows (in
fact we haven't needed to since the FROM line was changed to the public
URI in the main image descriptors)

Odd lines from the GitHub CI job failures for this PR, to check out:
  ERROR:root:I1116 10:03:54.985193   24175 sti.go:715] /opt/jboss/container/s2i/core//s2i-core: line 105: xargs: command not found
  ERROR:root:I1116 10:03:54.985381   24175 sti.go:715] /opt/jboss/container/s2i/core//s2i-core: line 105: find: command not found

Odd lines from the GitHub CI job failures for this PR, to check out:
  ERROR:root:I1116 10:03:54.985193   24175 sti.go:715] /opt/jboss/container/s2i/core//s2i-core: line 105: xargs: command not found
  ERROR:root:I1116 10:03:54.985381   24175 sti.go:715] /opt/jboss/container/s2i/core//s2i-core: line 105: find: command not found

Probably because of ubi-minimal?


no time filter not working

The following filter works in the todoist app/website but not in the plugin:
no time & today
obsidian: v0.8.12
plugin: v1.2.2

Hey @mrDLSable, seems that you've ran into another unsupported filter keyword like #11 (despite the Todoist API docs claiming otherwise!).
I think I'll make a meta ticket to track these as and when we run into them.

Ah, thanks @jamiebrynes7. I know it's a lot to ask for, but could you as a workaround perhaps assign a class to the todo items so people like me (probably just me) can hide them? Perhaps NoTime and HasTime?

I'm happy to add a has-time or similar to the task element, but does that solve your problem completely?
Unless you never want to see tasks without time in any query, doing this at a CSS level will affect all queries.

What I want to do is essentially use this query: overdue & p1 | today & no time & p1. With the has-time I can then use the following query and CSS to simulate it.
overdue & p1 | today & p1
.has-time{
    display: none;
}

.task-overdue{
    display: block;
}

I know it's just a bodge, but it's the best I can come up with right now.

Sure I can add those classes in, I imagine they could be useful for someone else as well.
Raised #36 for this 😄

Thanks :) I really love the plugin so far and look forward to what you will be able to do when the official plugin API is released

"filter": "no time"    is working now, FYI.

Yup, can confirm no time works as a filter now! 🎉


transform weekly pdf into daily pdfs

one pdf scraped from TSA website contains 1000 pages. LLM has a max of 300 pages at once so going to breakdown weekly activity into daily activity by creating pdfs for each day - which should be roughly 125 to 200 pages being fed into LLM.

got this working. Potentially refactor and need to update for use with cloud functions.


Ulm: Please add additional info

Is there a link to a finished Kita project?
Can we create individual projects for "PROJEKTE RUND UM ULM"?
@berb

@stkdiretto: I guess this can be closed, right?

yep


Install GDAL lib for geoparquet support by default?

Comment:
While using qgis from conda, I was at first unable to open Geoparquet files. Installing additional libgdal-arrow-parquet package within the environment, it works fine.
Although I was able to sort out the problem, is it possible to make the package a dependency from qgis package? It adds 15MB for the install but can avoid users to search why geoparquet not working within their qgis conda install.

@ThomasG77 we had some discussion about this here: https://github.com/conda-forge/qgis-feedstock/pull/386. We are following GDAL's lead here, and personally I'm not keen on making the install too much larger.
However, I would be open to creating a qgis-full package with all these optional packages installed. Or a qgis-minimal that I could use and qgis that has all the extra. Any thoughts @conda-forge/qgis ?

Thanks for the feedback. I did miss the discussion. Reading it was a good thing. It seems I'm too biased by my high speed connection and being a "too early adopter" whereas most people may not care about this particular driver before some years in "main" population. So, the proposition mentioned in the the other discussion is fine for me e.g

@SrNetoChan is putting together a list of useful optional packages that "may work well with QGIS" for us to display on installation, hopefully this may assist the novice user.


Panic/Seg Faulting with Rar files

After some helpful testing from people in discord, this nasty little bug was found. It seems to only present when running Stump in Docker, which is super annoying lol. I've narrowed it down to when I try and extract the byte content of a file within the rar archive without unpacking it.
I think a potential work around might be to not use the unrar library in Docker? Or to try and rework the read_bytes work around I wrote (as it isn't wonderful)

See https://github.com/aaronleopold/stump/pull/138 for update

This isue is probably the cause of the following output in the doker logs?
stump-stump-1  |   2023-07-09T13:22:56.423830Z ERROR stump_core::filesystem::scanner::utils: Error occurred trying to build media entity, build_result: Err(InternalError("Unsupported file type: Stump cannot currently support RAR files in Docker."))

Otherwise great piece of software!

This isue is probably the cause of the following output in the docker logs?

stump-stump-1  |   2023-07-09T13:22:56.423830Z ERROR stump_core::filesystem::scanner::utils: Error occurred trying to build media entity, build_result: Err(InternalError("Unsupported file type: Stump cannot currently support RAR files in Docker."))

Otherwise great piece of software!

Yep! That’s the reason, unfortunately. Version 0.5 of the unrar crate I use was released the very end of June, and it seemed to still have the issue. I plan on creating a reproduction with a much smaller Axum server to try and get to the root of the problem.

This should hopefully be resolved with https://github.com/stumpapp/stump/pull/150. Testing locally when using a Debian base image, instead of Alpine I didn't experience any seg fault. An experimental tag will be pushed to dockerhub with the Debian base, and then after some testing I'll consider this issue resolved if all goes well

It seems to work at first sight. Thanks, I am now trying to use it as my main book/comic server :) !


Crash on Startup

I know the last issue was closed but we are still unable to start up.
I've removed the app.db file in the .mapbox-studio user directory and the program will start up. But then only once, so we are having to remove the app.db file each time to get the program to load.
Have reverted to v 0.2.2 and it's the same issue there, crash while loading.
Win 7 Pro 64bit

@MarkWS - Can you also try restarting your machine? See if that helps?
If not then the problem is likely that a project file has become invalid. By default Studio opens to the last project you edited and so if the last project is broken this can prevent Studio from opening. Removing the app.db temporarily works around this by stopping Studio from opening the last project immediately. But if you navigate to the broken project you'll likely end up in the same state.

restart didn't help.
and this doesn't seem related to the projects. once we remove the app.db file the program loads. Then we 'connect' to our account, 'allow' in the authorize page and in the new project page we chose 'blank source'
then close MBS and it will not start up. so we have not loaded any projects and only started with a blank source without saving it.

@MarkWS are you using templates and interactivity layers in any of your styles?

No, we are not.

Can you verify via Windows Task Manager that there are no mapbox-studio.exe or node.exe processes running after the crash?

If there are any, please kill them, via Right Click -> End Process Tree before proceeding.

Maybe some kind of permission problem?
Could you try to remove %USERPROFILE%\.mapbox-studio completely before starting Studio?

If deleting the directory doesn't help, it would be great if you could follow these steps to help find the problem.

download and extract ProcDump to a directory of your choice.
cd into that directory on a command prompt:

press Windows-Key + R
type cmd, press Enter
type cd <FULL-PATH-TO-EXTRACTED-PROCDUMP>, press Enter

start ProcDump:

type procdump -w -ma -e 1 -l -t node.exe, press Enter
you should see

start Mapbox Studio

when Mapbox Studio crashes you should see something like this:

the DMP files can be huge, but the compress really well with 7z and compression set to Ultra.

share the zipped DMP files, so that we can take a look

When you are on the command prompt, enter those commands:
ECHO %GDAL_DATA%
ECHO %PROJ_LIB%
ECHO %ICU_DATA%

Do they output a path, like C:\some\other\program\GDAL-DATA or %GDAL_DATA%?

removal of the .mapbox-studio folder in the users dir worked.
the program did not crash on start-up when using v 0.2.2
upgraded to v 0.2.5 and it seems to be working fine. Will be working in MBS all day so I'll keep you posted.

more on this issue. I would consider this closed. the removal of the .mapbox-studio folder has solved this problem.


about using the export_inference_graph

Maybe it's not a issue and i am sorry to ask here.
After training the model(not pretrained model) with 11 classes ,I got the output in ./model (checkpoint file 、model.ckpt-27534（data、meta、index and etc.）.  Then i use the export_inference_graph.py and got an output in ./dataset/export_output/1558618490/ （saved_model.pb  、 variables.index  and variables.data-00000-of-00001）
But the problem was that when i tried to use the  saved_model.pb  、 variables.index and  variables.data-00000-of-00001 in other project i got an error like this:
MODEL = load_model()
File "/home/ubuntu/MyFiles/tensorflow/port/portrait-test/utils.py", line 38, in load_model
MODEL = DeepLabModel(model_path)
File "/home/ubuntu/MyFiles/tensorflow/port/portrait-test/deeplabmodel.py", line 25, in init
graph_def = tf.GraphDef.FromString(file_handle.read())
google.protobuf.message.DecodeError: Error parsing message
the method i used to load the graft is from official tensorflow deeplab model and it worked but when I use your model.pb it got an error , is there any differernce?  and how to sovled this problem? I would appreciate it if you could reply soon.
INPUT_TENSOR_NAME = 'ImageTensor:0'
OUTPUT_TENSOR_NAME = 'SemanticPredictions:0'
INPUT_SIZE = 513
FROZEN_GRAPH_NAME = 'frozen_inference_graph'
def __init__(self, tarball_path):
    """Creates and loads pretrained deeplab model."""
    self.graph = tf.Graph()

    graph_def = None
    # Extract frozen graph from tar archive.
    tar_file = tarfile.open(tarball_path)
    for tar_info in tar_file.getmembers():
        if self.FROZEN_GRAPH_NAME in os.path.basename(tar_info.name):
            file_handle = tar_file.extractfile(tar_info)
            graph_def = tf.GraphDef.FromString(file_handle.read())
            break

    tar_file.close()

    if graph_def is None:
        raise RuntimeError('Cannot find inference graph in tar archive.')

    with self.graph.as_default():
        tf.import_graph_def(graph_def, name='')

    self.sess = tf.Session(graph=self.graph)

I have the save questions with you, have you settled this one?

I have the save questions with you, have you settled this one?

@Have you solved the problem? I had the same problem,I am already downloading demo.py from from official tensorflow deeplab model,but I get erros:graph_def = tf.GraphDef.FromString(file_handle.read())
google.protobuf.message.DecodeError: Error parsing messag

I had similar issue, it is related to input sensor name and output tensor name which is provided wrong. Even I want to know proper names


docs(tutorial): update 'Pay' component to 'Checkout' for consistency

What changed? Why?
Replaced the  related component references to  to be consistent with OCK product updates.
Notes to reviewers
How has it been tested?

🟡 Heimdall Review Status

Requirement
Status
More Info

Reviews

🟡
0/1

Denominator calculation

Show calculation

1 if user is bot
0

1 if user is external
0

From .codeflow.yml

1

Additional review requirements

Show calculation

Max
0

0

From CODEOWNERS

0

Global minimum
0

Max

1

1

1 if commit is unverified
0

Sum
1

Review Error for ericbrown99 @ 2024-11-06 14:04:28 UTC
User failed mfa authentication, see go/mfa-help


Update byte-buddy, byte-buddy-agent to 1.14.9

About this PR
📦 Updates

net.bytebuddy:byte-buddy
net.bytebuddy:byte-buddy-agent

from 1.14.2 to 1.14.9
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

🔍 Files still referring to the old version number
The following files still refer to the old version number (1.14.2).
You might want to review and update them manually.
website/yarn.lock

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "net.bytebuddy" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "net.bytebuddy" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains, commit-count:1

Superseded by #766.


Stuck on "Sending Information" when going through a connectionless proof request

Device: iPhone 7 with iOS 15.6
Steps to Reproduce:

Access the Demo app as Lawyer
Follow the steps and go through "Login To Court Services"

At this step the wallets gets stuck on "Sending the information securely" and offer no option to go back.

Can confirm this is also happening since iOS build 270 in the nightly regression tests using the Candy UVP issuer and Pan Canadian Chat verifier. https://allure-mobile.vonx.io/api/allure-docker-service/projects/ios-multi-device-full/reports/87/index.html#testresult/1f11f3c867fe8c12

I resolved this in my PR here: https://github.com/hyperledger/aries-mobile-agent-react-native/pull/406


Added README.ja.md in Exercises 3 for networking_v2

I translated Exercises 3 to Japanese for Linklight v2. Could you merge my markdown files?
My colleague will post PR about Exercises 1 & 2.
Regards,
Taira

#137

+1


Improve Instance driver-driver conflict error message

This PR attempts to address issues #405 , #398 , and #320 by improving error messages for driver-driver conflicts involving Instances.
I took my best stab at a better message, but am totally open to changing it.
I am almost sure an Instance conflict is the only case in which this code path is hit (I called out "input pin" because while it's the same issue under the hood it looks different to the user), but please do review closely.
No rush on this - not sure if it makes sense to go into 0.3 or not.

Codecov Report

Merging #596 (ad07fcf) into main (2adbe59) will decrease coverage by 0.03%.
The diff coverage is 100.00%.

:exclamation: Current head ad07fcf differs from pull request most recent head 1699ae4. Consider uploading reports for the commit 1699ae4 to get more accurate results

@@            Coverage Diff             @@
##             main     #596      +/-   ##
==========================================
- Coverage   81.53%   81.50%   -0.04%
==========================================
  Files          49       49
  Lines        6468     6462       -6
  Branches     1531     1288     -243
==========================================
- Hits         5274     5267       -7
- Misses       1003     1007       +4
+ Partials      191      188       -3

Impacted Files
Coverage Δ

nmigen/hdl/ir.py
95.48% <100.00%> (ø)

amaranth/sim/_base.py

amaranth/compat/sim/__init__.py

amaranth/build/res.py

amaranth/lib/coding.py

amaranth/hdl/__init__.py

amaranth/hdl/dsl.py

amaranth/_utils.py

amaranth/_toolchain/cxx.py

amaranth/compat/genlib/fsm.py

... and 89 more

Continue to review full report at Codecov.

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

Obsoleted by #1104.


https: acme-challenge

in order to obtain a certificate for https-transfer via letsencrypt (i.e. with certbot, to be more precise) requests of the form example.com/.well-known/acme-challenge/... should be routed to some (configurable?) webroot.
(just for illustration: in order to obtain a certificate, you issue certbot certonly -d food.example.com -w /var/www/food/, the server creates a file (the challange) which is put into /var/www/food/.well-known/acme-challenge/somesortofidentifyer, and an external (acme?)-server tries to access food.example.com/.well-known/acme-challenge/somesortofidentifyer in order to prove that you actually control the domain. if this is successful, the certificate is created and stored for further use.
same procedure also applies when the certificate has to be renewed!)

its easier to just catch the request on the level of the reverse proxy.
sorry for the noise.


Calibration of the accelerometer

Beware both the tap in the interface and the accelerometer reading from the data bus may happen at different times. Otherwise just keep the latest and subtract readings.
Should we have a reset accelerometer to zero button?

@jmanart What's the difference between calibrate and reset to zero?

I was thinking of having the ability to reset everything to have the raw readings again in case we run into a strange situation. When we calibrate it the first time we will loose the ability to completely go to the initial situation.


feat: expose Realtime options on SupabaseClient

What kind of change does this PR introduce?
Exposes public Realtime configuration options.
What is the current behavior?
Realtime configuration options are public, but cannot be configured by the client.
What is the new behavior?
Realtime configuration options can now be set by the client.
Additional context
This is not ready to be merged. Tests need to be updated.

@bryandubno

I do also wonder if it would be better to add to SupabaseClientOptions instead?

Yes please, let's add it to SupabaseClientOptions under a realtime attribute.

@bryandubno I've made a few changes to your code and also updated tests.


A touch more cleanup related to [RIAK-1506]

These are tweaks that were added in the course of analyzing how CNs were being evaluated, and are worth keeping.
Log the ACL when SSL peer name doesn't match it.
Add optimized invalid_cn_pair/2 patterns to avoid string case conversion.
Comments!

@borshop merge


fix windows 11 vibrancy

Description
Please include a summary of the changes and the related issue. Please also include relevant motivation and context.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.

[ ] Test A
[ ] Test B

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

@NoPlagiarism I'm reverting to the acrylic, apply_blur did not work for me on windows 11

Have you tried Mica? If it will work, you can apply_mica on Win11 and apply_blur on Win10 (use os_version() to check two first digits)
There should be some configuration to turn off Vibrancy in case it creating inconvenience

Have you tried Mica? If it will work, you can apply_mica on Win11 and apply_blur/apply_acrylic on Win10 (use os_version() to check two first digits)
There should be some configuration to turn off Vibrancy in case it creating inconvenience

the config is the theme itself, i tried mica didn't work for me on win11... let me know if you want to work on it (I'm planning to release a new version today btw)


Hit count and track count structs are unfilled

As Dave reported in PR #118, the global hit count and track count structs are currently unfilled. We think some code got lost in a recent merge

Just saw this again while doing the update for v6. I don't know where the original code for filling HitCount when but it is now back in and will be included in v06_00_00

Done in #217


UI notification improvements

Description
This is not tied directly to any one ISSUE.
This was based on recent forum feedback and my desire to support TypedInputs throughout DB2 widgets.
The changes implemented are opinionated and may not all may be welcomed but since I had some playtime, and I like where it got to, I thought I would raise a PR for feedback.
At present, this PR includes no doc updates or tests because if the changes are rejected I wont have wasted any time ;)
Whats changed

Support TypedInput

What: This PR introduces a pattern for supporting typed inputs for the payload.
Why: Because it is super annoying adding change nodes everywhere!

#92

How: It works by evaluating node config property/propertyType and adding a temporary prop ui_payload to the msg that is used client side as the value. This should work for other widgets too.
NOTE: Adding JSONata might be an alt solution to the whole "support mustache for label / text / title / etc" debate

#555
which makes me think the temp ui_payload should probably be an object like ui_computed so that we can do the custom label stuff too e.g. { ui_computed: { payload: "evaluated payload", "label": "evaluated label" }

Inhibit default passthru

Why: Currently, the notification node sends multiple messages - 1 every time it gets and input msg and 1 when it closes.
What: This PR only sends the final msg upon timeout/dismiss/confirm
How: This is done by setting the config prop to false (hard coded)

Adds ui_reason to msg

msg.ui_reason will be added to the msg containing the relevant close reason of timeout, input_msg, dismiss_clicked, or confirm_clicked

Only sends msg to Node-RED if show is true

Why: I could quite easily get notification node to emit both "confirm" or "dismiss" AND "timeout" (when clicking a button near the end of progress bar)

Demo

Related Issue(s)

Checklist

[x] I have read the contribution guidelines
[ ] Suitable unit/system level tests have been added and they pass
[ ] Documentation has been updated

[ ] Upgrade instructions
[ ] Configuration details
[ ] Concepts

[ ] Changes flowforge.yml?

[ ] Issue/PR raised on FlowFuse/helm to update ConfigMap Template
[ ] Issue/PR raised on FlowFuse/CloudProject to update values for Staging/Production

Labels

[ ] Includes a DB migration? -> add the area:migration label

Support TypedInput

What: This PR introduces a pattern for supporting typed inputs for the payload.

Why: Because it is super annoying adding change nodes everywhere!

All nodes that accept input to have a typedInput #92

How: It works by evaluating node config property/propertyType and adding a temporary prop ui_payload to the msg that is used client side as the value. This should work for other widgets too.

NOTE: Adding JSONata might be an alt solution to the whole "support mustache for label / text / title / etc" debate

which makes me thing the temp ui_payload should probably be an object like ui_computed so that we can do the custom label stuff too e.g. { ui_computed: { payload: "evaluated payload", "label": "evaluated label" }

Another avenue may be to utilise the existing mechanism of ui_update and add the evaluated payload into that object 🤔

@Steve-Mcl,
My few cents about your proposal, for what it is worth:

I really like the idea of using Jsonata to mimic the Mustache expressions from dashboard D1.  It is very powerful and then indeed you don't have to pollute your flows with Template nodes.  Cool idea!

Personally I am not a fan to move the current ouput msg.payload to msg.ui_reason (in order to be able to keep the original input msg.payload).  I know that it is advised that nodes should reuse and manipulate existing input messages (by adding data to it), instead of creating new output messages from scratch.  In order to keep the (important) info from the input message.  However the state of a ui nodes is mostly build upon multiple input messages.  The last message might only contain some (unimportant) ui_update stuff, so not really to reuse such messages.  Or do you mean that you reuse the last message stored in the data store perhaps?  Because most ui nodes currently only store messages which have a payload, it might indeed be useful to reuse that one...
Moreover when you use msg.ui_reason your flow again needs extra nodes.  Because currently I can attach any kind of node to the output of my notification node, because the payload contains all the required info.  When you start using msg.ui_reason I need to add Change nodes to move that reason into the payload again...

Only sends msg to Node-RED if show is true, makes sense to me.  But could it perhaps be solved by moving the
clear timer and interval code snippet BEFORE the socket.emit (because the emitting perhaps takes a bit too long)?

The default passthrough of messages is indeed something that was confusing for me while implementing my PR for the notification node.  So indeed I would disable it.

2. Moreover when you use msg.ui_reason your flow again needs extra nodes.  Because currently I can attach any kind of node to the output of my notification node, because the payload contains all the required info.  When you start using msg.ui_reason I need to add Change nodes to move that reason into the payload again

The current implementation of the UI node only sends "timeout" or "confirm" etc. What I did here was to move the reason for it closing into ui_reason so that the original payload could stay in payload and therefore be passed back for downstream use. And yes the msg passed back will be the last message sent in to that particular notification node.

3. Only sends msg to Node-RED if show is true, makes sense to me.  But could it perhaps be solved by moving the
clear timer and interval code snippet BEFORE the socket.emit (because the emitting perhaps takes a bit too long)?

I've been bitten by timeouts in the past.
I did also move the clear calls above the emit but i could still cause dual messages.  The interlock was a final catch all that stopped it happening.

I need to spend time on this before committing either way, and give it the attention it deserves, will quickly comment on:

Another suggestion on the forum was multiple outputs. That would remove the need for any property at all.

Whilst it's clean from the notification node perspective, joining these in order to compute on them is then a pain as you have two async messages.

I need to spend time on this before committing either way, and give it the attention it deserves, will quickly comment on:

Another suggestion on the forum was multiple outputs. That would remove the need for any property at all.

Whilst it's clean from the notification node perspective, joining these in order to compute on them is then a pain as you have two async messages.

I think the confusion is that early on there was a suggestion to move just the result to a separate output, but I think that has been superseded by the suggestion of sending just to one output of the three, dependent on what is clicked. Effectively including a Switch node inside the Notification node.

Does this PR already include adding a note to the docs and help text to say that empty or 0 timeout disables the timeout?

No Colin.  No docs done at all - very much PoC at the moment.
Will make a mental note to include that kind of info if/when it evolves into something.

In fact that is actually just something missing from the docs for the existing node, it isn't anything to do with the suggested enhancements.

@Steve-Mcl merging https://github.com/FlowFuse/node-red-dashboard/pull/1343 has triggered a merge conflict - you okay to sanity check it please?

@Steve-Mcl merging #1343 has triggered a merge conflict - you okay to sanity check it please?

All done. Found and fixed an issue too so e2e tests should pass now.
Also, broke then fixed unit tests - bah!

so this (rather large) piece of work now has conflicts again - bah!
There are some things in this PR that fix things like breaking of widgets after being dynamically updated etc - we should get this is.  It is likely going to conflict with #1401 / #1428 and #30 / #1369
With these 3 large PRs hanging around, I am loathe to start some of the other tasks that will probably compound this further.

Thanks Steve, it's a huge PR which is going to take a lot of my time to review properly. I can't promise when I can get to it as there are a lot of fundamental changes here.

Happy to do on a call tomorrow to make this swift(er)

Let's do that - mind putting something in that suits you please?


Update the go download address

The old link cannot be accessed. The update is as follows:
https://golang.org/doc/install -->  https://go.dev/doc/install

/close


Documentation needs information on Secrets

The documentation is missing some information how to use Kubernetes secrets instead of AWS KMS

Hi @Hounddog - I've made some updates and a new pull request. Could you let me know if this works for you and if it is what you were looking for? Thanks
https://github.com/UKHomeOffice/jenkins-docker-aws/pull/9

@timgent Yes, this is the docs i was looking for to map the configs into the docker via kubernetes secret.

Good stuff, I'll close this issue


Single quote breaks highlighting for jsx file

I have a jsx file where the bracket highlighting works until part way through the file. Experimenting I found it's caused by the apostrophe / single quote (')
Steps to reproduce:

Create a new .jsx file
Paste this sample code into itfunction xyz() {
  return () => "this works";
}

const Breaking = () => <p>the single quote breaks this, it's unfortunate </p>;

class Foo extends React.Component {
  render() {
    //...
  }
}

The highlighting for class Foo shouldn't work.
Remove the apostrophe from the word it's in the Breaking component.
The highlighting should now work.

Should be fixed in v1.0.1


SegmentsAllowed requires including the Assigned one too

Related issue https://github.com/MicrosoftDocs/microsoft-365-docs/issues/1835
Essentially, if using -SegmentsAllowed and you not specify the one in -AssignedSegment you will receive this error

Your request failed to complete. Please retry. Error Details:
Segment [...] associated with this policy will not be able to communicate with
itself.

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks.


Camera

everything works fine in the testCamera file (in the photo on the left).  But in ConfigTool in the camera settings they show a white screen.  I reinstalled the program, it did not help.  In the photo, testCamera is on the left (dark, but there is an image) and configTool in the camera settings mode on the right (image is white)

@max1219 Did you ever fix this? I am having the same issue


[FR] allow option for stream sources to be persistently loaded for faster viewing.

I know this may not apply as much for anyone using Frigate where their RTSP streams are constantly loaded, but for view only needs (baby monitors, pantry cams, etc.) It would be nice to have an option where the streams could be pre-loaded so we don't have to wait for the ffmpeg startup delay.
It would also allow for primary sources to feed secondary, re-encoded streams more easily.

FFmpeg has delay only for video in stream. Even if it is not transcoded.
If you do not need to transcode video - this config is recommended:
streams:
  camera1:
  - rtsp://...
  - ffmpeg:camera1#audio=xxx

It starts up much faster

Yeah, I'm aware. My cameras only support 4k in h265 and 640p in h264, so I'm using HW tanscoding to both downscale the 4k stream, and alter the key-frame down to .5s for a preview stream.
The ability to tweak stream settings is an amazing feature for cameras with limited configuration,  and let's me standardize streams across vendors to the same framerate, key interval, and resolution.

Also, if we're transcoding for Mjpeg, would allow for more instantaneous snap-shots.

I think there are ffmpeg settings to speed up the start. I just don't know them.
Now ffmpeg starts with a delay equal to the size of the keyframe of the camera. I think it needs to catch two keyframes before starting (by default).

Yeah, I'm aware. My cameras only support 4k in h265 and 640p in h264, so I'm using HW tanscoding to both downscale the 4k stream, and alter the key-frame down to .5s for a preview stream.
The ability to tweak stream settings is an amazing feature for cameras with limited configuration, and let's me standardize streams across vendors to the same framerate, key interval, and resolution.

@rbray89 Could you please share your config, I am trying to do something similar with downscaling a stream and setting key frame. Thank you very much!


Support GHC 7.8.4 and related base library

cc @cdornan

Isn't this fixed already? However, updating deps to GHC 8.4.4. would be welcome, in particular to newer prometheus package. :)

@adinapoli: could you release this on Hackage? It compiles fine for me on GHC 8.4.4.

@Mikolaj Done!

Thank you very much!


Add Init Containers to common definitions

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[x] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
If updating an existing version, please select the specific language SDKs and CLIs that must be refreshed after the swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No refresh required for updates in this PR

Contribution checklist:

[ ] I commit to follow the Breaking Change Policy of "no breaking changes"
[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[ ] Check this box if any of the following appy to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review.  Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you are using OpenAPIHub to initialize the PR for adding a new version. More details, refer to the wiki.

[ ] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If any of the following scenarios apply to the PR, request approval from the Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in a stable version
[ ] Removing properties in a stable version
[ ] Removing API version(s) in a stable version
[ ] Updating API in a stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

Hi @p-bouchon , I removed "WaitForARMFeedback" since there is no new api defined in this PR.
Please let me know if you want to get this PR merged, or do you want to have a review from ARM for some special reason?

Hi @p-bouchon , I removed "WaitForARMFeedback" since there is no new api defined in this PR.
Please let me know if you want to get this PR merged, or do you want to have a review from ARM for some special reason?

Yes, we are good to merge. Pinged you


Respect main.js glob in selecting story files

Describe the bug
Currently the test-runner selects *.stories.[tj]sx? but this information is already more precisely specified in .storybook/main.js.
We should use main.js to select the stories:

[ ] Regular globs
[ ] Strip out MDX
[ ] Handle CSF3-style specifiers

implemented in #46


pin serde/serde_derive to 1.0.171 to avoid precompiled binaries

Serde started shipping pre-compiled binaries, which is obviously not a good thing... So we'll have to pin to an old version until they undo this.
Also need to pin serde derive.
Ref: https://github.com/serde-rs/serde/issues/2538

Version 1.0.184 removes this binary blob. See https://github.com/serde-rs/serde/releases/tag/v1.0.184

OK, make  v1.0.184 a minimum req instead.

Add to cargo-deny if not too hard.


Showing settings in chat and submitting edit-with-instructions raises typing errors

Issues

Unable to open the settings panel on chat prompt window. Raises error.
Unable to submit prompt during edit-with-instructions. Raises error.

Reproduction
I'm using a Nix flake to manage neovim configurations. This shouldn't matter for this issue though. You can find my ChatGPT.lua configuration here (that part's written in Lua).
When I open the chat window and press <c-o>, I receive the error state shown below.
E5108: Error executing lua: ...NeovimPackages/start/chatgpt-nvim/lua/chatgpt/module.lua:218: Expected Lua number
stack traceback:
        [C]: in function 'nvim_set_current_win'
        ...NeovimPackages/start/chatgpt-nvim/lua/chatgpt/module.lua:218: in function <...NeovimPackages/start/chatgpt-nvim/lua/chatgpt/module.lua:199>
Press ENTER or type command to continue

When I open the edit-with-instructions window and press <c-s> (I've remapped this to be able to submit as advised by other issues here), I receive the error state shown below:
E5108: Error executing lua: ...imPackages/start/chatgpt-nvim/lua/chatgpt/code_edits.lua:132: Expected Lua number
stack traceback:
        [C]: in function 'nvim_buf_get_lines'
        ...imPackages/start/chatgpt-nvim/lua/chatgpt/code_edits.lua:132: in function <...imPackages/start/chatgpt-nvim/lua/chatgpt/code_edits.lua:130>
Press ENTER or type command to continue

Debugging efforts
You can see my list of plugins here. I've uninstalled bufferline in to check for incompatibility. This didn't change anything.
I've cloned this ChatGPT.nvim and did some debugging on the chat settings panel specifically. What I've noticed here is that the instantiation of the settings_panel in modules here is either returning a nil value or an empty class (sorry if my terms are wrong, I'm not super familiar with Lua!). My mind first went to some async issues so I wrapped the settings toggle in an async call to force await before referencing the settings panel but my effort either didn't work or this isn't the issue.
HELP!
I'd be happy to help fix this issue if its effecting more people but I didn't see an issue from anyone else which leads me to think that maybe I've done something dumb. Is anyone else experiencing this problem!?

please reopen if issue still exists in newest version


We need to be able to run a test on multiple databases

Maybe it's early for this but we need to figure out a way to run the same tests on multiple dbs.
SImilar to what we have in OGM.
As a note, I wouldn't like to use the same approach we used for OGM. I find it too magical. I would be happy to have a separate module to use as TCK and keep the tests separated from the core (when necessary).

Perhaps we could follow the pattern that vertx-sql-client uses which is to have a TCK package that have abstract classes containing the test logic like so: https://github.com/eclipse-vertx/vertx-sql-client/tree/master/vertx-sql-client/src/test/java/io/vertx/sqlclient/tck
and then each DB has to extend the abstract class and override the basic boostrapping bit.
So the overall project layout might look like this:

hibernate-rx-core/ (has only basic unit tests that don't involve a DB, and has abstract TCK tests)
integration-tests/core-postgresql
integratoin-tests/core-mysql
etc...

This also follows a similar pattern that we use in Quarkus for having separate integration test projects: https://github.com/quarkusio/quarkus/tree/master/integration-tests

Thanks, seems helpful.
I haven't checked the links yet but
I agree that at some point we will have to organize the project in a similar way.

hibernate-rx-core/ (has only basic unit tests that don't involve a DB, and has abstract TCK tests)

I'm not sure, but it might not be enough. For example, in core we might have several tests running HQL queries and I would like to make sure that they work on all the datastores. I don't want  to extend several classes in each module. The only thing that would change in the tests is the driver and it would be nice to find some simple way to do that.
We have something similar in OGM and it's not that bad. You have to register the new database and then all the tests get executed on it. There was something I didn't like about it (I cannot remember what it is right now) but once you add the new database correctly, you can just add the tests in core and they will get executed on all the selected dbs.

That does sound like a nice mechanism, please leave a pointer to it here once you find it @DavideD. The tradeoff I think we should be mindful of is doing something "too magical" as you described in the OP. In general for tests I try to optimize for ease of maintainability (thinking about others needing to understand it too) over ease of writing the tests.

The question is whether we truly have a hard requirement to test all our functionality across multiple platforms. I would have thought that we're happy to trust Hibernate ORM to shield us from differences between databases, and as long as we have some basic smoke tests for the other DBs, we don't really need to aggressively test everything on all of them.
But whatever, I'm certainly not against being able to run all the tests against all the databases.

I think it would be good to test on all DBs because, while Hibernate itself is battle-tested, the Vertx drivers we are building on top of are not necessarily. Especially in the case of the DB2 and MSSQL drivers -- both are very new and Hibernate-rx is the first "real world" usage they are getting. We are writing as many tests as we can in the driver layer, but we'll never be able to match the stability of the traditional JDBC drivers this early on. So I think it's in the best interests of hibernate-rx to run its own tests on the code paths it will be driving.

That's a good point.

Now that I'm looking into pulling in the DB2 module, I think it would be a good time to restructure our testing so we can easily re-run all tests with different DBs.
Proposal
Have one set of test source, but the DB used is control by an envvar/system property (e.g. -Ddb=MySQL). When running things locally, you can easily swap between DBs by changing that flag.
When running in CI, we will want the ability to cover all DBs, so we'd simply add more jobs that re-run the same test module with different sysprop flags like this:
job1:
  name: PostgreSQL
  run: ./gradlew :hibernate-rx-core:test -Ddb=Postgresql
job2:
  name: MySQL
  run: ./gradlew :hibernate-rx-core:test -Ddb=MySQL
job3:
  name: DB2
  run: ./gradlew :hibernate-rx-core:test -Ddb=DB2
etc...

There may be tests that are only valid for some DBs, or not valid on others. For this we can use JUnit assumptions to bail out of the tests early if those assumptions are not met:
@Test
public void testDB2OnlyThing() {
  assumeTrue(DBConfiguration.is(DBKind.DB2));
  // rest of test...
}

and the inverse:
@Test
public void testThatIsNotValidForPostgresql() {
  assumeFalse(DBConfiguration.is(DBKind.PostgreSQL));
  // rest of test...
}

@gavinking @DavideD WDYT?

If it can be done without slowing me down when I'm running the tests quickly inside my IDE, I don't mind.
 Slow test suites make development almost impossible.)

Sounds good to me.
I don't think it's going to be that slow in the beginning. But even so, I'm sure we can find ways to make it faster.

I'll try to do it in the most transparent way possible. There may be some extra bumps (from CI builds failing more often) but we need the extra coverage since we are getting close to first release.

@gavinking @DavideD I've put out a proposed PR #150 which is pretty minimally invasive. Basically everything will continue to run with PG by default, but you can specify an extra option (-Pdb=DB2) to set a different DB type. I don't expect we will ever run the full matrix of all tests with all DBs locally, but instead we'll let CI do that and then have an easy way to replicate that in case things do fail with non-default DBs.

I don't expect we will ever run the full matrix of all tests with all DBs locally

I actually run them on all the dbs at the moment, quite regularly. CI is usually slower than my machine and if I make a change that will affect potentially all the dbs I don't want to wait for it.
And I don't want to have to remember to set all the profiles.
Would it be possible to set up a job that will test on all the available databases?  Otherwise we have to update the build on CI every time we add a new DB (and we could potentially forget).
(I made a similar comment on the PR but I guess it's better to discuss it here)

Basically everything will continue to run with PG by default

So it looks like with this change there's a tradeoff: I get to be able to run everything on MySQL and DB2 if I want, but by default I don't run anything on them.
Mmm. I mean, it makes sense even though I did kinda like how currently I just had one test that tested the only MySQL-specific feature, and it ran all the time.
OTOH it was a pain that the DB2 test also ran all the time, since I don't have DB2 on my machine.
So sure.

This is done, isn't it. Can I close it?

Certainly seems to be working to me.
Thanks, @aguibert, this is great.


Libraries research

Libraries research

[ ] Find the appropriate Python library for conversion of .obj file with mesh data to “.stl” file.
[ ] Visualize the obtained “.stl” file with another Python library. This second library has to be able to take at least .stl files and be able to colourize the mesh.

First candidate for visualization https://docs.pyvista.org

As for the library to handle files conversion, use https://pymeshlab.readthedocs.io/en/latest

https://www.epsilonforge.com/post/best-3d-scientific-visualization/

Converting - trimesh and pymeshlab
Visual - pyvista


BMM150: small improvements

increased REP_XY and REP_Z: improves accuracy a bit, while increasing measurement time (reduced sampling to 30Hz)
avoid extra transfer in measure()
extend regdump output
general code style cleanup
implement the normal self-test

I had considered this driver in rewrite territory not too long ago, but I'm glad it was salvageable.