[Bigtable] LongRunning API response throws auth error on polling

Environment details

OS:Debian
PHP version:8.1
Package name and version: cloud-bigtable:1.24.0

Steps to reproduce
Try any operation which returns an instance of a long running API (\Google\ApiCore\OperationResponse) and poll it untill completion in Bigtable's PHP client library. For eg, to create an instance, we can just try running the create_production_instance sample.
Code example
It's reproducible from the above code snippet.

Code
<?php

namespace Google\Cloud\Samples\Bigtable;

// !!!!! Load your autoloader !!!!

use Google\Cloud\Bigtable\Admin\V2\Instance\Type as InstanceType;
use Google\Cloud\Bigtable\Admin\V2\BigtableInstanceAdminClient;
use Google\Cloud\Bigtable\Admin\V2\StorageType;
use Google\Cloud\Bigtable\Admin\V2\Instance;
use Google\Cloud\Bigtable\Admin\V2\Cluster;
use Google\ApiCore\ApiException;
use Exception;

/**
 * Create a production Bigtable instance
 *
 * @param string $projectId The Google Cloud project ID
 * @param string $instanceId The ID of the Bigtable instance to be generated
 * @param string $clusterId The ID of the cluster to be generated
 * @param string $locationId The Bigtable region ID where you want your instance to reside
 */
function create_production_instance(
    string $projectId,
    string $instanceId,
    string $clusterId,
    string $locationId = 'us-east1-b'
): void {
    $instanceAdminClient = new BigtableInstanceAdminClient();

    $projectName = $instanceAdminClient->projectName($projectId);
    $instanceName = $instanceAdminClient->instanceName($projectId, $instanceId);

    $serveNodes = 3;
    $storageType = StorageType::SSD;
    $production = InstanceType::PRODUCTION;
    $labels = ['prod-label' => 'prod-label'];

    $instance = new Instance();
    $instance->setDisplayName($instanceId);

    $instance->setLabels($labels);
    $instance->setType($production);

    $cluster = new Cluster();
    $cluster->setDefaultStorageType($storageType);
    $locationName = $instanceAdminClient->locationName($projectId, $locationId);
    $cluster->setLocation($locationName);
    $cluster->setServeNodes($serveNodes);
    $clusters = [
        $clusterId => $cluster
    ];
    try {
        $instanceAdminClient->getInstance($instanceName);
        printf('Instance %s already exists.' . PHP_EOL, $instanceId);
        throw new Exception(sprintf('Instance %s already exists.' . PHP_EOL, $instanceId));
    } catch (ApiException $e) {
        if ($e->getStatus() === 'NOT_FOUND') {
            printf('Creating an Instance: %s' . PHP_EOL, $instanceId);
            $operationResponse = $instanceAdminClient->createInstance(
                $projectName,
                $instanceId,
                $instance,
                $clusters
            );
            $operationResponse->pollUntilComplete();
            if (!$operationResponse->operationSucceeded()) {
                print('Error: ' . $operationResponse->getError()->getMessage());
            } else {
                printf('Instance %s created.', $instanceId);
            }
        } else {
            throw $e;
        }
    }
}

create_production_instance(
    'PROJECT_ID',
    'INSTANCE_ID',
    'CLUSTER_ID',
    'LOCATION_ID'
);

Error log / message
PHP Fatal error:  Uncaught Google\ApiCore\ApiException: {
    "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https:\/\/developers.google.com\/identity\/sign-in\/web\/devconsole-project.",
    "code": 16,
    "status": "UNAUTHENTICATED",
    "details": [
        {
            "@type": "google.rpc.debuginfo-bin",
            "stackEntries": [],
            "detail": "Authentication error: 16; Error Details: Audience mismatch. Audience should be one of the following: [https:\/\/bigtableadmin.googleapis.com\/, https:\/\/bigtableadmin.googleapis.com\/google.longrunning.Operations, https:\/\/bigtableadmin.googleapis.com\/, https:\/\/bigtableadmin.clients6.google.com\/, https:\/\/content-bigtableadmin.googleapis.com\/, https:\/\/bigtableadmin.mtls.googleapis.com\/, https:\/\/bigtableadmin.mtls.clients6.google.com\/, https:\/\/content-bigtableadmin.mtls.googleapis.com\/], but is https:\/\/longrunning.googleapis.com\/."
        },
        {
            "@type": "grpc-status-details-bin",
            "data": "<Unknown Binary Data>"
        }
    ]
}

  thrown in [YOUR_DIR]/Bigtable/vendor/google/gax/src/ApiException.php on line 267

Reason of this issue
Mentioned in comment

Observed that this issue started arising from version 1.8.0 of the cloud-bigtable package. On running for 1.7.0 and below, the code snippet runs perfectly fine.

Verified that this is happening in both php7.4 and php8.2

Confirmed that this is happening across all the products in which APIs return a operationResponse to depict an long running process upon which that can be polled until it's completed.
The affected products(at least) are(found by searching samples which have pollUntilComplete()):

Asset
Bigtable
Compute

Firewall
Instances

Media

Livestream

~Spanner~ (Spanner handles these apis in an entire different way by using their handwritten layer to create an instance of LongRunningOperation implemented in Core. This receives parent's $connection and auth scopes are transferred here correctly as parent's scopes are also forwarded.(code pointer of instantiation)
Speech
Translate
Video
Vision

The error seems to be that scopes of parent product are not getting passed down to the long running api and thus the requests made by that long running api (essentially pollUntilComplete() fails due to the auth error.

I'm not sure right now why the tests for these are not failing, investigating this.

This should be fixed in the latest release (v1.21.1)

I've confirmed by running tests that the related API's are running perfectly fine, hence closing this issue.


Server issues don't result in request-id showing up in error message

Bug Report

import path of package in question, e.g. .../services/compute/mgmt/2018-06-01/compute

	"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"

SDK version e.g. master, latest, 18.1.0

github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1

Specify the exact commit if possible; one way to get this is the REVISION
column output by dep status "github.com/Azure/azure-sdk-for-go.

I don't think this is a valid command

output of go version

go version go1.18.1 linux/amd64

What happened?

We had an error come out of the azblob lib that looked like this:
couldn't save snapshot JSON to blob storage: blob upload failed: ===== INTERNAL ERROR =====
Put "https://<accountname>.blob.core.windows.net/snapshot-blobs/17435035/8fc23938-db12-40c5-9ebe-156dc1a13941": dial tcp: lookup <accountname>.blob.core.windows.net on <IP_ADDRESS>:53: server misbehaving

What did you expect or want to happen?

I dialed up support, and they don't see any server errors. They expect to see the request ID coming back in this case. The library is clearly indicating something went wrong on the server, but support can't seem to determine what it is.

How can we reproduce it?

No idea, this appears to be a transient server issue that isn't being correctly reported by the client?

Anything we should know about your environment.

Not that I know of!

Looks like DNS failed to resolve the host name, so the request was never made which is why there's no request ID.  This specific error message comes from the standard library.
https://github.com/golang/go/blob/master/src/net/dnsclient_unix.go#L44


AttributeError: 'CostModelContactFrictionCone' object has no attribute 'frame'

Hey guys,
It seems that  some change in v1.2.0 caused python3 bipedal_walk.py display to fail.
Output:
  File "bipedal_walk.py", line 79, in <module>
    ddp[i].solve(xs, us, 100, False, 0.1)
  File "/opt/openrobots/lib/python3.6/site-packages/crocoddyl/__init__.py", line 271, in __call__
    self.visualization.displayFromSolver(solver)
  File "/opt/openrobots/lib/python3.6/site-packages/crocoddyl/__init__.py", line 115, in displayFromSolver
    fs = self.getForceTrajectoryFromSolver(solver)
  File "/opt/openrobots/lib/python3.6/site-packages/crocoddyl/__init__.py", line 176, in getForceTrajectoryFromSolver
    if contact.joint == self.robot.model.frames[c.cost.frame].parent:
AttributeError: 'CostModelContactFrictionCone' object has no attribute 'frame'

Hopefully this report is useful to you :)

Hi @julesser,
This issue has fixed in v1.2.1 but we are still waiting for the release.
Alternatively, you could install Crocoddyl by source.
I will close this issue since it has been fixed.
Carlos

Okay, great.

FYI: Updating robotpkg-py36-crocoddyl to version 1.2.1 has fixed the problem for me.


AuthN: client for access token exchange

Adding a client for fetching short lived access tokens.
Depends on https://github.com/grafana/auth/pull/583

Thanks for your reviews @kalleep and @Jguer! I've made a bunch of changes, and would appreciate another review.
The main changes:

simplify the structure to remove unneeded interface layers and not have a separate models file;
change the request struct to take in realms and org ID, and not require claims for now;
check if the CAP that is used is system wide, and require realms and org ID in that case;
parse the received token (for successful requests) and use token's expiry time as TTL for the cache.

Thinking a bit more about this I think we should probably have two different clients. One to use when you have a system token and one to use when you have a non system token, they can share an interface but don't necessarily have to do it.
Users of this component should know if they need to use a system token or a token with non system realms. Then we would only need one method on each, Exchange.
For SystemTokenExchangeClient we would add X-Org-Id and X-Realms headers if they are provided. For RealmTokenExchangeClient we would never add those header to a request. This would avoid the confusing function names and not having a function that only works if you have a system token

@charandas @cinaglia I did significant changes to this pr in  4979813 that greatly simplified things.
As we discussed in https://github.com/grafana/auth/pull/613 we always set X-Org-Id=0 and X-Realms=[{"type": "system", "identifier": "system"}]. For none system token these will always be ignored. Instead of having different functions depending on token realm type we can now have one function for both cases. To perform an exchange request we require  that namespace is set and that we have at least one audience.
So even if a service is using a non system token they still need to pass a namspace.

Shouldn't namespace be added here: https://github.com/grafana/authlib/blob/3e6125d0a52c1cf68b05fa511b8d3bf8ffbd29a0/authn/verifier_access_token.go#L11?


PostgreSQL migration performance due to hasTable behavior

Laravel Version
11.21.0
PHP Version
8.3.11
Database Driver & Version
Postgres 17.0
Description
In Laravel 11.21.0 and since Laravel 10.34, migrations' behaviour has changed. It causes issues on Postgres.
It call Builder::hasTable behind the scene and here is the issue :
    public function hasTable($table)
    {
        $table = $this->connection->getTablePrefix().$table;

        /** @phpstan-ignore arguments.count (SQLite accepts a withSize argument) */
        foreach ($this->getTables(false) as $value) {
            if (strtolower($table) === strtolower($value['name'])) {
                return true;
            }
        }

        return false;
    }

We see here that this function calls getTables() to check if a table exists. There is perhaps more direct way to do that, but the issue is not directly here.
As you can see, for SQLite, there is a false argument used to prevent calculating size of tables. We should have the same kind of behaviour for Postgres, because now the query made look like that :
select c.relname as name, n.nspname as schema, pg_total_relation_size(c.oid) as size,
obj_description(c.oid, 'pg_class') as comment from pg_class c, pg_namespace n
where c.relkind in ('r', 'p') and n.oid = c.relnamespace and n.nspname not in ('pg_catalog', 'information_schema')
order by c.relname

And before it was something like this :
select * from information_schema.tables where table_catalog = $1 and table_schema = $2 and table_name = $3 and table_type = 'BASE TABLE'

So a request dedicated to find if a table exists, not loading all tables size infos.
For the same kind of migration done, it causes a RAM usage 5 times bigger and a CPU 4 times bigger in our case. We have a lot of tables in this database (~10k).

Can not quickly provide a benchmark, but it is easy to understand the issue here. Checking for a table existence should not list and calculate size of all the tables in the db.
Steps To Reproduce
Start a new empty Laravel project settuping PostgreSQL as your database.
 A simpler request should be done.

#49243 and #52615 are related I think.
#49020 is the PR that broke performances for MySQL/MariaDB/SQLite.
#49148 is the one that broke PostgreSQL.

You may check PR #53006

Was working on a Pr myself, yours is basically mine but better. So well done for reactivity !
That's solvibg the issue.


⚠ ClamAV has degraded performance

In fa29b39, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 100 ms

Resolved: ClamAV performance has improved in a97dd1c.


add api call to delete an attribute from an html element

add api call to remove an attribute by id

@phisad fyi


feat: adedd copy embedd url feature #4225

Fixes #
Describe the changes you have made in this PR -
 Added the copy link functionality at 'Embed your Circuit' section, for a better user experience.
Screenshots of the changes (If any) -

As the linked issue #4225 is closed, we are closing this PR as well.
Thank you @Keshav-0907 for your contribution. Just take a look at other issues.


CLANG_CXX_LANGUAGE_STANDARD merge problem with Instabug

When I want to install Instabug and Realm in the same project, I'm getting the warning:
[!] Can't merge user_target_xcconfig for pod targets: ["Instabug", "Realm", "Headers"]. Singular build setting CLANG_CXX_LANGUAGE_STANDARD has different values.

This is a duplicate of #2053. The setting is only required in pod_target_xcconfig. We hold back from updating the podspec in the recent releases, because it requires an update to CocoaPods 0.38.2, which introduced support for dedicated attributes. Anyhow I pushed the branch mr-0.95.3-podspec, which you can specify from your Podfile to workaround the issue for now.


Add ability to pass multiple -only args to run specific UI tests.

fbxctest now accepts multiple test filter arguments (-only), this allows it to run only specific tests rather than running the whole test suite. Unfortunately, xctest binary apparently does not support multiple -XCTest <filter> arguments, so UI tests with multiple test filters are only supported for now. Passing multiple filters to logic or app tests will fail the run which is tested.
Test plan: CI, added tests

Hi @lawrencelomax , would you be able to have a look please?
Travis CI is completely broken - a lot of tests are failing even without my diff. I've attempted to fix build errors in this diff a bit, but tests are failing.


Option to return raw data (mesh, box) for Facemesh / "preserve aspect ratio" fix from Facemesh upstream

In some use cases of Facemesh such as 3D calculations, one may need the raw data (such as mesh) as output, instead of the current version which has been mapped to fit the source image. With this pull request, a new boolean option "config.face.mesh.requestRawData" is now available (false by default), which allows additional outputs as raw data (.mesh_raw, .box_raw).
The second change refers to the "preserve aspect ratio" fix from Facemesh upstream.
https://github.com/tensorflow/tfjs-models/commit/85e6e487cc4bd21f0707a509e5024484a0798aa0
I am not really sure if this has been addressed in human already in some way, but judging from the source code it appears to be missing.

looks clean, only minor notes:
1. I prefer to use variables such as `meshRaw` and `boxRaw` instead of `mesh_raw`, etc. - can you change that.

2. config boolean should be `returnRawData` instead of request?

3. instead of setting `rawCoords` to null if `returnRawData`, wouldn't it be better to leave it unset and append rawCoords conditionally? e.g., `if (config.face.mesh.returnRawData) prediction.rawCoords = rawCoords;`

Fixed


feat: Deprecate custom UDF time_bucket in favor of date_bin

Which issue does this PR close?
Closes #558
Rationale for this change

What changes are included in this PR?

I removed the time_bucket function and used datafusion's built-in date_bin function
Are there any user-facing changes?

The time_bucket function is missing and needs to be replaced with the date_bin function.
SELECT DATE_BIN(INTERVAL '15' minute, `timestamp`, TIMESTAMP '2001-01-01T00:00:00Z')  FROM `02_function_time_bucket_table`;

{
-"rows": [
-{
"datebin(IntervalDayTime(\"900000\"),02_function_time_bucket_table.timestamp,Utf8(\"2001-01-01T00:00:00Z\"))":<PHONE_NUMBER>000000000
},
-{
"datebin(IntervalDayTime(\"900000\"),02_function_time_bucket_table.timestamp,Utf8(\"2001-01-01T00:00:00Z\"))":<PHONE_NUMBER>000000000
},
-{
"datebin(IntervalDayTime(\"900000\"),02_function_time_bucket_table.timestamp,Utf8(\"2001-01-01T00:00:00Z\"))":<PHONE_NUMBER>000000000
},
-{
"datebin(IntervalDayTime(\"900000\"),02_function_time_bucket_table.timestamp,Utf8(\"2001-01-01T00:00:00Z\"))":<PHONE_NUMBER>000000000
},
-{
"datebin(IntervalDayTime(\"900000\"),02_function_time_bucket_table.timestamp,Utf8(\"2001-01-01T00:00:00Z\"))":<PHONE_NUMBER>000000000
},
-{
"datebin(IntervalDayTime(\"900000\"),02_function_time_bucket_table.timestamp,Utf8(\"2001-01-01T00:00:00Z\"))":<PHONE_NUMBER>000000000
}
]
}

How does this change test

unit test case

data_bin returns nanoseconds, whereas Timestamp in ColumnBlock takes milliseconds, and I couldn't find the API for converting datafusion internally, so I handled it separately.
The down_cast of ArrayRef bothered me for a long time, until I realized that it really was simply a conversion of an abstract Array down to a concrete type, not a conversion of a data type. The other day I got into the wrong mindset😌

and I couldn't find the API for converting datafusion internally, so I handled it separately.

There is a function for this to_timestamp_millis.

https://docs.ceresdb.io/sql/functions/scalar_functions.html#temporal-functions

I see you have deleted time_bucket, I'm afraid this is not what the original issue means.
We plan to reimplement time_bucket based on date_bin, not remove it, since this would be a breaking change.

my mistake, I will recover it

I tried the to_timestamp_millis function to convert, but there was an error.
Unsupported data type Timestamp(Nanosecond, None) for function to_timestamp_millis. This was likely caused by a bug in DataFusion's code and we would welcome that you file an bug report in our issue tracker

So I left it the way it was for now.

Unsupported data type Timestamp(Nanosecond, None) for function to_timestamp_millis.

When will this error arise?
SELECT
    to_timestamp_millis(date_bin(INTERVAL '15' minute, time, '2001-01-01T00:00:00Z')) AS t,
    count(1)
FROM
    demo
GROUP BY
    t
ORDER BY
    t

SQL above can run successfully.

@dust1  I have left a few comments, have a look when you're free.
Also, I found this PR isn't what the title says, this PR add nanoseconds support, not deprecate old time_bucket.
By deprecate time_bucket, it's meant to remove old implementation of time_bucket, and reimplement using date_bin.
But I think your can do this replace work in next PR, as this PR does preparation for that.

@dust1 The CI is broken 😅

Oops, an unintended effect😂

@dust1 I think this PR is ready for merge, I will push some minor changes, please don't update this branch any more.

ok


Missing generic implementation or helper

The crate seems to be missing a non-arch specific implementation, which forces anyone using gxhash to select another hash and use cfg directives to choose between them (obviously releasing non-specialized crates that only work on x86-64 and arm64 is not acceptable).
If the user selecting another hash is desired, then all GxHash types should take the other hash as a generic parameter, for user convenience.

Yes you're right, it is important to provide a fallback. That's probably the 1st priority. Something can be done in the spirit of what is done for the crate ahash

Closing as duplicate of https://github.com/ogxd/gxhash/issues/47


[Question]: Hybrid search?

Question Validation

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

Question
Hi there!
I'm wondering where would be the best place to get started if I wanted to implement a lexical, semantic, graph search hybrid.
I see the examples for doing lexical + semantic retrieval.
And I was wondering if there are any guides for doing semantic + kg retrieval.

I think any custom retriever could do this. Or using the query fusion retriever and passing in all the retrievers you want to mix
https://docs.llamaindex.ai/en/stable/examples/retrievers/relative_score_dist_fusion/?h=query+fusion

@chengyjonathan 3 retrievers, that then get composed into one. How you get those retrievers is up to you 👍🏻

I think any custom retriever could do this. Or using the query fusion retriever and passing in all the retrievers you want to mix
https://docs.llamaindex.ai/en/stable/examples/retrievers/relative_score_dist_fusion/?h=query+fusion

@logan-markewich
If I had a KnowledgeGraphRAGRetriever and a VectorIndexAutoRetriever and wanted to fuse them - would the SQLAutoVectoryQueryEngine framework but for Knowledge Graphs be the correct approach over this Fusion retriever?
https://docs.llamaindex.ai/en/stable/examples/query_engine/SQLAutoVectorQueryEngine/


Added test cases for Handling multiple attempts at ipmi reservation ids

1.Test Wrong ReservationID is for testing expired reservation id.
2.Test Correct ReservationID is for testing correct reservation id.
3.Command content are packaged with fake value.
4.This version has some issues need to resolve.
Signed-off-by: Nan Li<EMAIL_ADDRESS>

This PR is replaced by https://github.com/mkumatag/openbmc-automation/pull/50.


fix(query): fix/cmk rotation disabled on terraform asymmetric key creation

Closes #5335
Proposed Changes
should check if using the SYMMETRIC_DEFAULT (the default) - define it or without - or using other type of keys - AWS asymmetric keys do not support automatic key rotation
I submit this contribution under the Apache-2.0 license.

running some tests local

@kaplanlior per our talk - setting this note as reminder - this PR is resolving issue with the terraform query which creates AWS KMS - this issue might occour as well on other automation tools which works with AWS KMS like ansible. etc.
FYI @joaorufi @rafaela-soares


Voice recognition not working even with custom api key

OS: Windows 10 x64
Issue Descriptions: I set a custom google api key, with speech recognition api enabled, and the voice controls still do not work at all. No error is thrown in the console, no response, nothing at all. Microphone work fine with any other app. No clue where to start debugging this issue myself.
Steps to Reproduce:

Set custom api key to electron
Enable voice controls
Try to issue any command
Nothing happens

It was unnecessary to open a new issue and close the old one. Are you building the application from git? I believe the voice API key is "baked in" at build time. So you would have to be building from source to change it currently.

Set custom api key to electron

This is harder than you think especially with our building tooling, we bake environment variables in during the JS compilation stage
I personally don't consider this a bug (it's not intended behavior to allow people to customize this key) and while I'd accept PR's to implement this as an option, I wouldn't want it on the backlog as it's not something I'll ever get around to addressing.

@jostrander @MarshallOfSound yes I am building the project myself, I set a Logger event to check that my key is being used too

@jostrander @MarshallOfSound yes I am building the project myself, I set a Logger event to check that my key is being used too, also the bug isn't that the custom key is not working, but it seems the feature itself to not be working at all. Also as far as i can see it uses the Web Speech Api which doesn't require an Api Key as far as i know, and not the Google Speech Api. Am I Wrong? Please elaborate

Have you been able to figure this out? or is it a dud?


Allow repeated pitch vals and make unit tests work after chandra_models updates

Description
This removes an unnecessary restriction in the chandra_models pitch/roll constraint file that the pitch values are strictly increasing. Instead the values need to increase or be constant. This works with numpy interpolation just fine.
In addition this uses a new mechanism from ska_helpers (https://github.com/sot/ska_helpers/pull/36) to allow caching in this context. With this the regression unit tests were updated to run at specified version of chandra_models.
Interface impacts

The global ROLL_TABLE LazyVal has been removed. This was never intended as a public value and searching the sot org shows no code that uses it.
Testing

Unit tests
With the following environment setup:

Using an environment with https://github.com/sot/ska_helpers/pull/36 installed
CHANDRA_MODELS_REPO_DIR=/Users/aldcroft/git/chandra_models, where that git repo is checked out at version 3.49 (consistent with master at this time).

[x] Mac

Independent check of unit tests by [REVIEWER NAME]

[ ] [PLATFORM]:

Functional tests

Timing. Interesting allowed_rolldev got a factor of 4 faster, maybe due to using a smaller table?
This branch
In [1]: from ska_sun import allowed_rolldev

In [2]: %time allowed_rolldev(90.0)
CPU times: user 18.3 ms, sys: 21.1 ms, total: 39.4 ms
Wall time: 66.7 ms
Out[2]: 17.5

In [3]: %time allowed_rolldev(90.0)
CPU times: user 65 µs, sys: 6 µs, total: 71 µs
Wall time: 75.1 µs
Out[3]: 17.5

In [4]: %timeit allowed_rolldev(90.0)
7.99 µs ± 451 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)

Flight 2023.1
In [1]: from ska_sun import allowed_rolldev

In [2]: %time allowed_rolldev(90.0)
CPU times: user 8 ms, sys: 1.34 ms, total: 9.34 ms
Wall time: 9.38 ms
Out[2]: 18.748772

In [3]: %time allowed_rolldev(90.0)
CPU times: user 152 µs, sys: 12 µs, total: 164 µs
Wall time: 158 µs
Out[3]: 18.748772

In [4]: %timeit allowed_rolldev(90.0)
38 µs ± 374 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)

Is this ready for review?

@jeanconn - despite what I said in #33, this PR is still relevant and I have just updated it for the new ska_helpers. The description has been updated and I re-ran testing. So this is ready for final review.

I note with my chandra_models repo checked out at the pitch-roll-constraint-2023_020 and CHANDRA_MODELS_DEFAULT_VERSION not set to anything that the test_roll_table_meta test will fail with the tip not at tag warning.  Should it?  Do we require that the default version be set?

        Returns
        -------
        str
            Version (most recent tag) of models repository
        """
        if repo is None:
            if repo_path is None:
                repo_path = chandra_models_repo_path()
            repo = git.Repo(repo_path)

        if repo.is_dirty():
            raise ValueError("repo is dirty")

        tags = sorted(repo.tags, key=lambda tag: tag.commit.committed_datetime)
        tag_repo = tags[-1]
        if tag_repo.commit != repo.head.commit:
>           raise ValueError(f"repo tip is not at tag {tag_repo}")
E           ValueError: repo tip is not at tag 3.49

I note with my chandra_models repo checked out at the pitch-roll-constraint-2023_020 and CHANDRA_MODELS_DEFAULT_VERSION not set to anything that the test_roll_table_meta test will fail with the tip not at tag warning. Should it?

Yes.
We can certainly have a discussion about this feature, but originally I had been very concerned about the flight chandra_models repo being accidentally misconfigured and giving invalid results. For that reason the interface code is pretty strict. I would guess that you agree we want to be conservative and strictly check that the repo is in a reasonable state.
This probably points to a process point that should make things work more consistently for you. Any chandra_models repo being used in this interface should be checked out at a commit corresponding to the latest tag. Always use CHANDRA_MODELS_DEFAULT_VERSION to change the desired version. Do not try to change the version by checking the repo out at a different version.
I appreciate this is not all obvious or documented, so hopefully we are getting there.

I do disagree on one note of process.  chandra_models 3.48 is the latest release.  If the point is to be rigorous, code shouldn't be complaining at me if I don't have the repo checked out to the latest pre-release tag.  And in testing, unless the code is in ska_helpers chandra_models trying to test behavior with the vars, I think it should just be testing with versions, instead of being dependent on what the tip of the repo is or what CHANDRA_MODELS_DEFAULT_VERSIONS .

I do disagree on one note of process. chandra_models 3.48 is the latest release.

The latest release (on github) is not checked by default because that would introduce a network dependency and performance issues. What I said is that the repo needs to be checked out at the latest tag which is in that repo. Git repos don't have the concept of a pre-release tag, there is just a tag so in this case 3.49 is there as the latest tag.

Definitely test_roll_table_pitch_increasing should use the latest because the intent is to test that the current flight version is meeting that sanity requirement of increasing values.

But the latest tag may have nothing to do with what is required for operations.  So I still don't understand the "tip not at tag" requirement.

Definitely test_roll_table_pitch_increasing should use the latest because the intent is to test that the current flight version is meeting that sanity requirement of increasing values.

So it seems like that test should be requiring the latest.

So it seems like that test should be requiring the latest.

Though I suppose if you want to test a new version of chandra_models to make sure it satisfies this, that will be via setting CHANDRA_MODELS_DEFAULT_VERSION manually anyway.  I'm not as sure about what to do when the test is there to validate the model not the continued performance of the code.

I also note that I think these tests will fail on HEAD unless we update the HEAD repo (though I think we can do that without updating the checked-out / default version).

Yeah, I was thinking about this. We can do that update on HEAD but being careful. Here is what I did to test to see that the the 3.49 tag stays out of the flight repo:
  520 cd ~/tmp
  521  git clone /proj/sot/ska/data/chandra_models
  523  cd chandra_models
  527  git remote add upstream https://github.com/sot/chandra_models.git
  529  git fetch upstream --no-tags
  530  git tag   # No 3.49
  531  git show 68670fc  # Desired commit for testing is there

kady$ git checkout 68670fc
Previous HEAD position was 68a5809 Merge pull request #105 from sot/version-3.48
HEAD is now at 68670fc Update to 2023_020 pitch roll constraint
kady$ git checkout 3.49
error: pathspec '3.49' did not match any file(s) known to git
kady$ git checkout 3.48
Previous HEAD position was 68670fc Update to 2023_020 pitch roll constraint
HEAD is now at 68a5809 Merge pull request #105 from sot/version-3.48

Though I suppose if you want to test a new version of chandra_models to make sure it satisfies this, that will be via setting CHANDRA_MODELS_DEFAULT_VERSION manually anyway.

Exactly. Normally in day to day testing this is just a small sanity check on the flight data. I took this out of the original function call and put it into a test.
For testing a pre release of chandra_models we would do just what you said and clone the github repo locally, check out at the pre-release tag and set CHANDRA_MODELS_REPO_DIR to that directory. Then we can run the full system integration tests and it will do a high-fidelity test of how things will be when that pre-release gets promoted.
If instead you want to test a development branch, you need to do the above and in addition set CHANDRA_MODELS_DEFAULT_VERSION to the branch name or commit. Then tests like test_roll_table_pitch_increasing which are not pinned to any version will be using the specified version from the env var.
I'm going to put the ideas from these comment conversations into a wiki in the chandra_models repo.

But the latest tag may have nothing to do with what is required for operations. So I still don't understand the "tip not at tag" requirement.

The latest GitHub release tag is what is required for operations. We procedurally maintain the deployed git repo to have the same latest git tag as the latest GitHub release tag. (It is important to be clear about what kind of tag you are discussing).
Our use of GitHub pre-release tags introduces a potential source of error that we currently avoid procedurally. I think the use of pre-release tags helps Matt, but e.g. we could use .rc<n> tags and then ignore those when checking the latest git tag.
The tip not at tag requirement is to prevent me from accidentally going to the flight repo and checking it out at some dev branch and forgetting. Maybe that's just not credible and we remove that check.

By "flight repo" do you mean HEAD /proj/sot/ska/data/chandra_models?  I think we do need a regular check (probably in jobwatch even if it isn't a job) that the HEAD repo is checked out at the appropriate release.
Also, is the point of "require_latest_version" that some code could use that, but that we don't want to actually use it for anything operationally critical because it adds a github network dependence?

Also, is the point of "require_latest_version" that some code could use that...

Yes, this is the sort of thing that might make sense for a regular check in jobwatch using require_latest_version=True.

By "flight repo" do you mean HEAD /proj/sot/ska/data/chandra_models?

Yes.


CatAliases API

Hi
I am using CatAliases API to get the list of all aliases .
My request is something like
ICatAliasesRequest catAliasesRequest = new CatAliasesRequest();
return m_elasticClient.CatAliases(catAliasesRequest);
and i am trying to read every record received from response(IEnumerable). I am observing that the records returned only have alias and index information and returns null for Search and Index routing .
Could anyone please confirm if this is a known issue or point me if i am doing something wrong ?
Thanks in advance !!

Hi @DivyaMalini,
Did you set routing value during alias creation? Have a look into documentation.
This is how you can do this with the NEST:

Object initializer

var putAliasResponse = client.PutAlias(new PutAliasRequest("name")
{
    Routing = "routing"
});

Fluent

var putAliasResponse = client.PutAlias(a => a
	.Index(indexName)
	.Name("name")
	.Routing("routing"));

Hope it helps.

Hi @robertlyson ,
Yes i had set the routing value during alias creation. Even when i directly run the command through sense plugin (GET _cat/aliases), the results displayed has SearchRouting values set. It is when I used the API in my c# code , i found the results whose routing values are null .

@DivyaMalini may you share more information about your alias?

@robertlyson ,
My PutAlias call is defined like this
public IPutAliasResponse PutAlias(string indexName, string aliasName)
{
var request = new PutAliasRequest(aliasName)
{
Index = new IndexNameMarker()
{
Name = indexName
},
Routing = Gid.NewGuid()
};
return elasticClient.PutAlias(request);
}
The _cat/Aliases call through sense plugin gives aliasName, indexName, Filter, Search and Index routing.
But when executed via code
public ICatResponse CatAliases(ICatAliasesRequest request)
{
CatAliasesRequest req = new CatAliasesRequest();
client.CatAliases(req);
}
in the catAliasesRecord obtained all the aliases routing(index and search) are returned null
FYI , i use Nest 1.6.0

@DivyaMalini looks like a bug, so I've created https://github.com/elastic/elasticsearch-net/pull/1593 to address this issue.

@robertlyson , Great !!! Thanks a lot ...


Additional section processing for MX, SRV

Codecov Report

Merging #531 into master will increase coverage by 0.17%.
The diff coverage is 78.26%.

@@            Coverage Diff             @@
##           master     #531      +/-   ##
==========================================
+ Coverage   39.09%   39.26%   +0.17%
==========================================
  Files         121      121
  Lines        6065     6087      +22
==========================================
+ Hits         2371     2390      +19
- Misses       3510     3511       +1
- Partials      184      186       +2

Impacted Files
Coverage Δ

middleware/file/lookup.go
90.41% <78.26%> (-1.47%)
:x:

middleware/file/zone.go
76.06% <ø> (+1.7%)
:white_check_mark:

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 5aa3030...356f105. Read the comment docs.


Named constraints

Hi there,
According to the docs, it possible to name you primary key and hopefully your unique and foreign key. But this does not seem to be true at least for Sqlite. Is this just lacking on the SQLite implementation?. I could work on a PR to allow this in SQLite.

It should be supported. If the sqlite implementation is missing, PR would be really welcome!

Hi,
I'm working on a PR for this but would like to clarify something first. What should be the correct API for naming keys and indexes?. This is how I think the API works
Indexes
Fluent API
Only single column indexes can be created like this and the index name is optional. The next example will add the column colA to the table and an index named optional-name
table.string('colA').index('optional-name');

Normal API
Single column
Single column indexes can be created and the name is optional like the next example that will add an index named optional-name with one column colA
table.index('colA', 'optional-name')

Multiple columns
Multi-column indexes are allowed and the name is optional but if multiple columns are needed they must be specified in an array as the first parameter like the next example that will add an index named optional-name with two columns colA and colB
table.index(['colA', 'colB'], 'optional-name')

Assuming the previous is correct, I think I can do the same for primary and unique indexes in SQLite. Waiting for your comments to proceed with the PR.


⚠ Minecraft has degraded performance

In 7f4fea2, Minecraft (https://www.minecraft.net) experienced degraded performance:

HTTP code: 200
Response time: 1187 ms

Resolved: Minecraft performance has improved in 787b2c3.


release: v1.8.2

[1.8.2] (Sep 19, 2024)
Fix:

Removed CSS styles that could potentially affect the client's website

/bot create ticket

[Creating Ticket] 🔖 Done https://sendbird.atlassian.net/browse/SDKRLSD-1414


new Home page for community website

after changing from ambassadors to community we need new content reflecting employees, contributors, .. etc

what kind of new content do you need?

what kind of new content do you need?

Currently the home page is addressing ambassadors, we need more suitable content for the home page of community, more inclusive, not just ambassadors, no?

I would just change 'our ambassadors are people who support us' to 'our community supports' for now.


add zmc and dmick as committers

It would be great to have another developer with permissions to merge in this project.
@zmc and @dmick

Actually, would you mind if we moved this to github.com/ceph ?

We can just fork it
On Thu, Apr 6, 2023, 11:47 AM Ken Dreyer @.***> wrote:

Actually, would you mind if we moved this to github.com/ceph ?
—
Reply to this email directly, view it on GitHub
https://github.com/alfredodeza/merfi/issues/76#issuecomment-1499477534,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAKJYEIDD4YMYLCVY5SDRTTW74FTHANCNFSM6AAAAAAWVYDYBI
.
You are receiving this because you were mentioned.Message ID:
@.***>

It's in the ceph org now


SVG of the ibm-file-uploader missing the tabindex attribute

Detailed description

SVG of the ibm-file-uploader missing the tabindex attribute

Is this a feature request (new component, new icon), a bug, or a general issue?
issue

Is this issue related to a specific component?
ibm-file-uploader

What did you expect to happen? What happened instead? What would you like to see changed?
The svg of the uploader should have a tabindex attribute,such as tabindex="0". then the close icon can get focus via keyboard
What browser are you working in?
FireFox
What version of the Carbon Design System are you using?
"carbon-components": "10.31.0",
"carbon-components-angular": "4.54.2",

Additional information

Screenshots or code

If I manually add the tabindex from developer tools of Firefox, it will work  well

Notes

@Santalov @cal-smith

FYI @cal-smith has left IBM

@GSSCDylan sounds like you already have a fix for this. Do you mind contributing it? 🙂

Hi @zvonimirfras ,I've submit a PR https://github.com/IBM/carbon-components-angular/pull/1901 for the fix.


Optimize basename handling and ensure dynamic runtime definition (custom basepath)

As part of this contribution, I’ve implemented a series of modifications in Flowise to allow it to support a custom BasePath (which corresponds to the basename property in React). This is an essential feature for enabling deployments where the application needs to run under a specific path, such as behind a reverse proxy like NGINX, without requiring changes to the underlying Flowise backend.
The main challenge was that Flowise’s frontend did not natively support running under a BasePath. Without this capability, any attempt to deploy Flowise under a custom path (e.g., https://flowise.domain.com/custom/chatflows) would break the application, as all assets and routes would assume the root URL. In environments where Flowise needs to coexist with other services on the same domain, this becomes a significant limitation.
To solve this, I introduced logic to dynamically set the basename in React’s router based on a configurable BasePath. The change was isolated to the frontend, where the BasePath can now be managed without impacting the backend. Specifically, I introduced a mechanism to substitute the %BASE_HREF% variable in index.html at runtime, allowing the application to correctly resolve assets and routes when deployed under any given path.
On the backend side, I ensured that this works seamlessly with NGINX, where NGINX strips the BasePath from the request and forwards it to Flowise as usual. This solution ensures that Flowise can now be deployed with a custom BasePath, enabling greater flexibility for deployments in various environments, such as microservices architectures or multi-tenant setups.
This feature is crucial for improving Flowise’s adaptability in enterprise-level deployments, where the application may need to share a single domain with other services. It also helps avoid potential conflicts and ensures that Flowise remains robust and scalable in a broader range of scenarios.
I’m confident that this enhancement will significantly benefit teams looking to integrate Flowise into more complex infrastructures, and I encourage its adoption to make Flowise even more versatile in production environments.

thanks @thiagolealassis !
I tried to set the BASE_HREF as /flowise
When I open http://localhost:3000/flowise, I have this error:

Are you able to reproduce?

We also have this issue as the assets are trying to load from a root path which is inaccessible.
Can we finish off this PR to get this to work, or is there another way to get a custom prexfix/basepath for assets to work?


AVRO-3712: Fix C++ build by initializing union

AVRO-3712
What is the purpose of the change
Fix build. (I'm guessing adding 'pedantic' to build.sh broke this a while back.)
Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Documentation
No documentation required.

Thanks Thiru.


cmd/go: go build -i cache mixup with GOARM=6 vs GOARM=7

What version of Go are you using (go version)?

go version go1.15 linux/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/ncw/.cache/go-build"
GOENV="/home/ncw/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/ncw/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/ncw/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/opt/go/go1.15"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/opt/go/go1.15/pkg/tool/linux_amd64"
GCCGO="/usr/bin/gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build829175078=/tmp/go-build -gno-record-gcc-switches"

What did you do?
I checked out the rclone repository: https://github.com/rclone/rclone - probably any large repo which builds under ARM will do.

I expected to see 8 binaries with 2 md5sums
What did you see instead?
I see that the binaries built in parallel with go build -i appear to be different
Note that the differing binaries sometimes differ from run to run.
run 1
1160905621e7ce72dd577d7cbbffc3b2  parallel-no-i-v7.bin
1160905621e7ce72dd577d7cbbffc3b2  sequential-i-v7.bin
1160905621e7ce72dd577d7cbbffc3b2  sequential-no-i-v7.bin
f2c7c50467ab0ec6354ec8f35805b65b  parallel-i-v7.bin

c048804419a985ba1f5bde7c7f2dd47f  parallel-no-i-v6.bin
c048804419a985ba1f5bde7c7f2dd47f  sequential-i-v6.bin
c048804419a985ba1f5bde7c7f2dd47f  sequential-no-i-v6.bin
126979dfe3987ad89a18af57f4089b02  parallel-i-v6.bin

run 2-3
Identical to above
run 4
1160905621e7ce72dd577d7cbbffc3b2  parallel-no-i-v7.bin
1160905621e7ce72dd577d7cbbffc3b2  sequential-i-v7.bin
1160905621e7ce72dd577d7cbbffc3b2  sequential-no-i-v7.bin
6a99ec2ac3e4ea4684882da699ac9d7b  parallel-i-v7.bin

c048804419a985ba1f5bde7c7f2dd47f  parallel-no-i-v6.bin
c048804419a985ba1f5bde7c7f2dd47f  sequential-i-v6.bin
c048804419a985ba1f5bde7c7f2dd47f  sequential-no-i-v6.bin
92e501e7ef370324003c0100ce49ea6f  parallel-i-v6.bin

Discussion
This came to my attention in https://github.com/rclone/rclone/issues/4553 - ARMv6 builds for 1.53.0 result in "Illegal instruction" error.
The root cause of that issue seems to be rclone's builder building the ARMv6 and ARMv7 releases in parallel and somehow parts of the ARMv7 binary get mixed into the ARMv6 binary resulting in the illegal instruction on ARMv6. However the binary does run on ARMv7 indicating that it isn't just random corruption, it is probably compilation units that have got mixed up.
Rclone's builder is using go build -i for historical reasons (namely that is how you used to get build caching). Removing the -i from the command appears to fix the problem.

I'm not sure anything needs fixing here. Just don't use go build -i to build concurrent ARM releases! Remove the -i and rely on build caching and all will be well.
I'm going to close this in the interests of shortening the backlog!


Update /examples/ to new gradle based build flow

Update /examples/ to match the new gradle based build enabled in https://github.com/flutter/flutter/issues/4796.
Fixes https://github.com/flutter/flutter/issues/8061

@jakobr-google @abarth please review

Thanks so much!


GCE Multizone Deployment doesn't properly honor PV requirement when scheduling

I apologize that I don't understand this problem well enough to succinctly describe it.
I spun up a cluster using master@d10ce131203d6add4baa3d156e9563095ac4703d with the patches necessary to deploying using CentOS/Origin this included the following lines in config.yaml:
[brad@ansible gce-cli]$ fgrep metric config.yaml
openshift_hosted_metrics_deploy: true
openshift_hosted_metrics_storage_volume_size: 20Gi

After the cluster is built there is a pv bound to a pvc like this:
Brads-MBP13:~ brad$ oc get pvc
NAME                  STATUS    VOLUME                                     CAPACITY   ACCESSMODES   AGE
metrics-cassandra-1   Bound     pvc-bfeef7c3-4cdf-11e7-8a2f-42010a80000a   20Gi       RWO           10h

I also made these changes after the cluster came up:
::::::::::::::
/tmp/gce-pd-storageclass-ssd.yaml
::::::::::::::
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
  name: ssd
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-ssd
::::::::::::::
/tmp/gce-pd-storageclass-standard.yaml
::::::::::::::
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
  name: standard
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-standard

 sudo /usr/local/bin/oc create -f /tmp/gce-pd-storageclass-standard.yaml
 sudo /usr/local/bin/oc create -f /tmp/gce-pd-storageclass-ssd.yaml

Then I started troublehsooting the problem described in #446.  I changed the image part of the replication controller config and deleted the existing POD so it would get redeployed.  The scheduler assigned it to a node in the wrong zone.  Initially I thought the volume wasn't labeled properly but that doesn't appear to be the case:
Brads-MBP13:~ brad$ oc describe pv pvc-bfeef7c3-4cdf-11e7-8a2f-42010a80000a
Name:		pvc-bfeef7c3-4cdf-11e7-8a2f-42010a80000a
Labels:		failure-domain.beta.kubernetes.io/region=us-central1
		failure-domain.beta.kubernetes.io/zone=us-central1-b
StorageClass:
Status:		Bound
Claim:		openshift-infra/metrics-cassandra-1
Reclaim Policy:	Delete
Access Modes:	RWO
Capacity:	20Gi
Message:
Source:
    Type:	GCEPersistentDisk (a Persistent Disk resource in Google Compute Engine)
    PDName:	kubernetes-dynamic-pvc-bfeef7c3-4cdf-11e7-8a2f-42010a80000a
    FSType:
    Partition:	0
    ReadOnly:	false
No events.

I tried to work around the problem by deleteing the pod until it was schedule on a node in the correct zone but it still won't mount the volume.
Contrast this with what happens for the pvcs that were created to support fabric8 pods.  Those pvs were created and bound after I did the dynamic provisioning steps mentioned above.  I deleted the fabric8-docker-registry pod and it was immediately recreated and the volume mounted.
I can rule out that the getting scheduled on a node in the right zone but different than the one that previously had the volume because I only have one master, infra and regular node in each of three zones (9 total nodes) and only the regular nodes are labeled such that these PODS get scheduled to them.
I'm happy to provide any output that would help but I don't know how to get logs from the scheduler or know what else would help.

I think this is the downside to multi-zone deployment. For example when i create a storageclass in AWS I actually specify a specific AZ for the storage class.  This is resolved in storage solutions such as CNS, CRS, or NFS.
The downside of the installation based installation of metrics is that you don't really have much a choice where items land.  A work around when using pvc, storage classes, and even dcs is to specify a zone for the storage to ensure that the pods are always launched in a location of storage.

I'm not sure if you noticed in my problem report but it appears that pvs bound to pvs created after the cluster is already up behave properly.

The PVC currently uses annotation
volume.alpha.kubernetes.io/storage-class: "dynamic"
This commit advances the annotation to volume.beta...
https://github.com/openshift/openshift-ansible/commit/521ebaf9eecc38029cfe6fe0e10a13888cb3f83e

@bdurrow could you try to deploy your ocp with the updated openshift installer on release-1.5 branch + the change from https://github.com/openshift/openshift-ansible/commit/521ebaf9eecc38029cfe6fe0e10a13888cb3f83e ? As I'm not really sure if this problem belongs to the ref. arch. or to the installer.

There are a number of problems with the metrics deployment.  I'm not sure if they are all related to the "installer".  The openshift-infra namespace doesn't have a node selector after deployment (correction it does but it is set to "").  The original deployment of metrics happens to role=infra labeled nodes but after that nodes selected with the default node selector.  Also the kubernetes.io/gce-pd doesn't successfully unmount the filesystem from the host when I terminate the POD so the volume isn't available to the next node where the pod gets scheduled (because of the node selector circumstances killing the pod will always try to schedule on a different node because the infra node it is initially started on doesn't meet the requirements for the node selector).  I'm not sure if this is related to openshift/openshift-ansible@521ebaf.  I have found that if I manually edit the pvc to have the following and also fix the node selector in the namespace the problem goes away (or is masked by the fact that only one node matches the selection criteria).
    volume.beta.kubernetes.io/storage-class: standard
    volume.beta.kubernetes.io/storage-provisioner: kubernetes.io/gce-pd

I think to fully test this I would need to have 2 infra nodes in the same availability zone.  I don't have the bandwidth to fully address all the problems with metrics deployment this week.  I'll try to pick it up in a few days.
Ultimately to work around the problem I have to:

Add this line to my config.yaml before deployment: openshift_hosted_metrics_deployer_version: 'v1.5.1'
Define Storage Classes (after deployment)
Modify the metrics-cassandra-1 PVC (as indicated above)
Modify the openshift-infra namespace to have the correct node selector
Reboot the infra node where the cassandra volume is attached

I don't know if some of these steps aren't necessary.  Ideally I would be able to handle 2-4 using the installer.

So, with 3.6 + couple of fixes done in this repo, this issue shouldn't be a problem any more. OCP on GCP now has 2 storage classes defined by default (standard and ssd) and openshift-infra namespace has infra node selector defined. By increasing the minimum number of nodes to 3 of each kind (3 masters, 3 infra nodes and 3 app nodes), pvs should be always created in a zone where is a node (at least until https://github.com/kubernetes/kubernetes/issues/50115 is resolved).


WIP: Pan tilt phat

Description:
Replaces 9262
Adds the pimoroni pan-tilt hat component, making use of the module provided by pimoroni.
Adds services to home and move the servos, and the state of the component is the current pan angle (there is a known bug in the imported package when reading the tilt angle).
This is a work-in-progress, so will complete all requirements when it is ready for submission.
**Pull request in home-assistant.github.io <3293>
Example entry for configuration.yaml (if applicable):
pan_tilt_phat:

Checklist:
If user exposed functionality or configuration variables are added/changed:

[ x] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable ([example][ex-requir]).
[ x] New dependencies are only imported inside functions that use them ([example][ex-import]).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

To do - add sensor platform to display state

ping?

The bug in the pantlithat library relating to incorrect reporting of the motor positions has now been fixed. Waiting for the patched version to be issued as a release on Pypi.

Will come back to this. Remains as a custom component for timebeing


Remove timeout from RayCluster CR apply; bump CB timeout to mitigate stockouts

RayCluster apply takes O(seconds). The actual ray worker deployment is done asynchronously by the ray operator.
Fixes https://github.com/GoogleCloudPlatform/ai-on-gke/issues/520

/gcbrun


FIX: Account information clipboard icons do nothing

[x] issue #103
[x] follows contribution guide
[ ] code change includes tests
[ ] breaking change

##Description
Made a fix to the clipboard icons that let users copy text using the icon, after copying, a toast message appears saying it was copied to let the user know the action was successful, also I cleaned a bit the AccountInfoView func
#Screenshots

thank you! @all-contributors add @lauchaves for code


Added three games one is Fruit Cutting Game and second is MosquitoHitting and third NumberGuessingBySpeaking  .

PR Description 📜
Mosquito-Whack
"Mosquito Whack" is an engaging and fast-paced game designed to test your reflexes and precision. The objective of the game is to swat as many mosquitoes as possible within a 30-second timeframe. Each successful hit awards points, while missing three mosquitoes results in game over. The game is complemented by lively background music and satisfying sound effects upon each successful hit, enhancing the overall gaming experience.
Fruit-Cutting
To enhance the fruit sliding game with background music and new cutting sound effects, we'll follow these steps:
Background Music Integration:
Choose or create a suitable background music track that complements the game's theme.
Implement the background music to play continuously during the game session.
Add controls for the player to mute or adjust the volume of the background music.
Cutting Sound Effects:
Select or create distinct sound effects for the fruit cutting action.
Ensure the sound effect is synchronized with the fruit cutting animation for a seamless experience.
Implement the sound effect to play each time a fruit is successfully cut by the player.
NumberGuessingBySpeaking
The objective of the game is for the player to guess a randomly generated number within a specified range by speaking their guesses. The game provides feedback to help the player narrow down the correct number.
Example Scenario:
The game generates a random number between 1 and 100.
The player starts guessing by saying, "50."
The game responds with, "The number is higher."
The player then guesses, "75."
The game responds with, "The number is lower."
The player guesses, "63."
The game responds with, "Congratulations! You guessed the correct number."
The player is given the option to play again or choose a different difficulty level.
This game combines the fun of traditional number guessing games with modern speech recognition technology, providing an engaging and interactive experience for players.

Mark the task you have completed ✅
#4846  #4845
Add your screenshots(Optional) 📸
Mosquito-Whack
https://github.com/user-attachments/assets/da9811c9-9c29-451b-b144-4ee5f24f34c3
Fruit Cutting
https://github.com/user-attachments/assets/83042584-5ceb-42f5-bfd2-6012c1ba44b7
NumberGuessingBySpeaking

Thank you soo much for contributing to our repository 💗

Thank you @ankit071105 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

Thank you  @ankit071105 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀

#4847  Merged my PR . I request to merged my  pull request and add some interesting games for more fun by my PR

I recommend to make different pr for your different games in this way you only be helped by increasing number of points you can get from this repo . By adding more than one game in single pr i cant provide you a level higher than 3

I dont need a level higher than 3 if you wish you can give me  @ishita-43  you can give me lvl 2 also

Okay I am closing this pr onam regenerating a new pr for two games differently @ishita-43  thanks for helping me

Thank you  @ankit071105 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀


Remove old tutorials from docs (replaced with video lessons)

https://docs.silverstripe.org/en/3.4/tutorials/ has a big red "deprecated" message at the top. Its becoming a maintenance issue to update, while there's Aaron's vastly better video lessons are available at https://www.silverstripe.org/learn/lessons/.
We're not going to upgrade these to work with 4.x, and I'm also advocating for removing them from the 3.x docs. Just redirect the "tutorials" link in the docs to https://www.silverstripe.org/learn/lessons/ instead = better initial experience for devs.

Possibly fixed with https://github.com/silverstripe/silverstripe-framework/issues/7353; @unclecheese can you confirm?

V3 docs still remain but we won't change those.
V3 redirects to the lessons. The lessons do need updating but that's a separate issue.


Prometheus query_range API returns different result for different orders of metrics.

What did you do?
I have the below metrics in the prometheus.
m101 and m102.
and sample data are,
m101{cn="2", ip="<IP_ADDRESS>", name="Default", sn="AB-0721-11-0022"}
m102{cn="2", ip="<IP_ADDRESS>", name="Default", sn="AB-0721-11-0022"}
when i execute the query_range api like below,
{"httpRequest":{"clientIP":"<IP_ADDRESS>","method":"GET","path":"/api/v1/query_range"},"params":{"end":"2024-01-19T15:41:47.334Z","query":"m101 >1 or m102 <1 ","start":"2023-06-23T15:41:47.334Z","step":72576},"spanID":"0000000000000000","samples":{"totalQueryableSamples":54,"peakSamples":321}},"ts":"2024-01-19T15:41:10.804Z"}
It returns 16 series. Result has both m101 and m102 metrics and each has 8 series.
but when i do the reverse query,
{"httpRequest":{"clientIP":"<IP_ADDRESS>","method":"GET","path":"/api/v1/query_range"},"params":{"end":"2024-01-19T15:43:12.186Z","query":"m102 <1 or m101 >1 ","start":"2023-06-23T15:43:12.186Z","step":72576},"spanID":"0000000000000000","samples":{"totalQueryableSamples":72,"peakSamples":339}},"ts":"2024-01-19T15:42:35.665Z"}
It returns only the 8 series from m102.
What did you expect to see?
The expectation is same result when I am doing both a)  m101 >1 or m102 <1       b)  m102 <1 or m101 >1
What did you see instead? Under which circumstances?
m101 >1 or m102 <1  returns 16 series   but m102 <1 or m101 >1 returns only 8 series.
System information
RHEL 8.7
Prometheus version
2.41.0

Prometheus configuration file
No response
Alertmanager version
No response
Alertmanager configuration file
No response
Logs
No response

The order is important because the name of the metric name is not taken into consideration while using the "or" operator.
I would expect the number of metrics returned to be the same however, but you are not comparing the same time ranges. Please add parameters to compare the same time ranges between two queries.

Even for same time ranges the results are same as i mentioned in the question.. If metric name is not considered, then why first query returns both m101 and m102


Aggregate stats for account and super token pages.

Super token page

Stream and index data section
Total streamed, distributed, transferred and supply section

Account page

Balances section

@vmichalik Please check if you like the design. It was really hard to solve account page balances because it is so different for every account.

Maybe filter out zeroes from the token summary? (Not the "super tokens" page.)

Definitely lots to work with here, nice one!
Nothing really to add!:

filter out zeroes as suggested by kaspar

Observation:

total supply numbers look really strange at first glance, but it's quite cool when you think about it!
we might want to think about implementing the multi network view for accounts here at some point, perhaps using the same filtering we're planning for the user dashboard

Could we add a header for the super token balances in the accounts page? From the first glance it is not really clear that those are the token balances , could be incoming/outgoing streamed amount too since we use the same format for those


Celestia integration

Adds support for the Celestia blockchain

Thanks for this great contribution!
I'll merge after a little while.  Totally unrelated but working on redoing part of solana CSV (technical debt that has come to roost affecting deployment of everything on stake.tax).

Sounds good! Lmk if you have any feedback on it when you go to merge it. And thanks for your ongoing work on stake.tax! It is a fantastic resource.

fyi i haven't neglected this.  I'm working on something that I hope supplants this (using mintscan api instead of lcd nodes for data; celestia is on mintscan api list; main motivation is that lcd nodes' history tends to be good for birth of blockchain's 1st year but over time, become unreliable in terms of archived data availability if the blockchain have no traction)

Thanks for the PR @zapnap !
I added celestia CSVs with https://github.com/hodgerpodger/staketaxcsv/commit/4be4b543de3cd559fc8db0f10ac906f8c2763b1e , using your PR as the guide.
I didn't incorporate the changes for handle_staking.py, since I significant doubts there.

great! looks like you sorted out some of the test suite issues as well? I have some other cosmos ecosystem updates in my local repo. If there's a published test suite now I'll rebase against it and try to get some other PRs in queue

Yup, I started a test suite (though just starting).  I'll likely migrate existing tests to the public test suite after tax season, since I'd like to get out a few things.  For now I mostly add public tests for new code.


docs(tutorial): add deprecation notice to v1.4.x tutorial and point to the correct branch

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
Docs update.
Does this PR introduce a breaking change?
No
Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format
[ ] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

Other information:

Add a deprecation notice on the 'index' page.
Hide the "Live Demo" buttons (since we don't have a live demo).
Update the GitHub diff links to point to the pre-v1.5.0-snapshot angular-phonecat branch.
Modify all git commangs to use the appropriate branch and tags.

Related to #14416.

The only thing missing (except for merging this PR) is to create the old-step-* tags on angular-phonecat.
(We might need better names for pre-v1.5.0-snapshot and old-step-*.)

@petebacondarwin, I have assigned you, since you are the official tutorial reviewer this month :stuck_out_tongue:

@petebacondarwin, I made the changes. PTAL

Renamed branch to 1.4-snapshot and tags to 1.4-step-* (as discussed off-github).
Merging...

Closed via 6234cda.


[Bug Report] [ElTable] changing highlight-current-row or nullifying current-row-key doesn't change the current row and so highlighted row stay highlighted

Element UI version
2.3.4
OS/Browsers version
Ubuntu 16.10/ Chrome
Vue version
2.5.16
Reproduction Link
https://jsfiddle.net/wz3trjqy/
Steps to reproduce
1- click on any row on table
2- click on the button
What is Expected?
The highlighted row should be unhighlighted
What is actually happening?
The highlighted row stay highlighted

+1


How to get rich_text_input in slack modal ?

I have a rich_text_input block from which I am reading data using rich_text_value. Whatever blocks it provides, I tried them in the Slack Block Kit UI, and I am getting properties errors. However, these properties, like border and others, are autogenerated. How can I resolve this error?
Slack block kit builder link

On submitting the view I get this block of code but it doesn't work in block it and not in message
[https://app.slack.com/block-kit-builder/T04SAR07D8F#{"blocks":[{"type":"rich_text","elements":[{"type":"rich_text_quote","style":"bullet","indent":0,"elements":[{"type":"rich_text_section","elements":[{"type":"emoji","name":"laughing","unicode":"1f606"}]},{"type":"rich_text_section","elements":[]},{"type":"rich_text_section","elements":[{"type":"text","text":"DKFKRFR"}]},{"type":"rich_text_section","elements":[{"type":"text","text":"R"}]},{"type":"rich_text_section","elements":[]},{"type":"rich_text_section","elements":[{"type":"text","text":"F"}]},{"type":"rich_text_section","elements":[{"type":"text","text":"RFFMRFRFKRF"}]}],"border":1},{"type":"rich_text_quote","elements":[{"type":"user","user_id":"U056VUB71DM"}]}]}]}](check this slack block kit)

This is random message which generates this block text but it not working

Hi, @yashgandhi-32! Thanks for submitting your question 😄
After looking over the provided Block Kit link, I noticed you're trying to use an indent property and bullet style property with rich_text_quote, which is not supported for that type and is resulting in an error. Did you mean to use rich_text_list? I have an updated link to the Block Kit Builder where I have updated the type and it is no longer throwing errors - let me know if this helps!

@yashgandhi-32 hi! Ahh, I see what you're saying. To get some better context, could you show me how you're implementing the rich_text_input to appear in the modal?

@yashgandhi-32 I confirmed with the team that there is rich_text_input support. Based on the output, it seems you're able to take in inputs with the way you're implementing the rich_text_input field - is that right?
There is a chance that the Block Kit UI itself is outdated (I'm not seeing rich_text_input as a valid option and it is also saying your rich_text_input syntax is "invalid"). As long as you're able to render the view returned and it is working as expected, I would say you're good to go.
On my end, I'll surface the outdated Block Kit Builder UI internally to see if we can get it fixed to avoid future confusion! 🙌

As long as you're able to render the view returned and it is working as expected, I would say you're good to go.

I am not able to render it give me an error something went wrong .. maybe u can try on ur end once also I already provided u code ...
Are there any helper method to rich inout .. to construct messages directly ? my goal is to enclose everything in quote >  whatever user types with a custom sentence

@yashgandhi-32 do you have any error messages you can send that are thrown by the app when you try to load the view? That will help me troubleshoot it better for you.
Also to confirm, the rich_text_input modal view itself works, correct?

Also to confirm, the rich_text_input modal view itself works, correct?
Yes it works

@hello-ashleyintech maybe I will write a regex to make it work ... for now the only thing if u can give some idea ..... I want to wrap everything to blockquote will it be possible to do so ?

@yashgandhi-32 based on the error, I wanted to check and see if you have interactivity payloads handled. This can affect how your app handles view submissions and potentially causes the error you're getting.

@hello-ashleyintech maybe I will write a regex to make it work ... for now the only thing if u can give some idea ..... I want to wrap everything to blockquote will it be possible to do so ?

I'm not quite sure what you mean, are you asking if it's possible to put the entire view output into a blockquote?

I'm not quite sure what you mean, are you asking if it's possible to put the entire view output into a blockquote?

Yes for above I am getting a event .. I will figure this with some other ways too maybe

I'm not quite sure what you mean, are you asking if it's possible to put the entire view output into a blockquote?

Yes let say I got below text from the user input in modal and I want to send this as message to user DM wrapping everything in block quote like this screenshot . The outer quote is what I added extra rest is input by user in rich_text_input

{
  "type": "rich_text",
  "elements": [
    {
      "type": "rich_text_quote",
      "elements": [
        { "type": "text", "text": " dkfkfkf\nfkfkfkf\nkkkkkk\n\ncffff" }
      ]
    },
    {
      "type": "rich_text_section",
      "elements": [
        { "type": "text", "text": "\ndddkdkd\n" },
        { "type": "emoji", "name": "smile", "unicode": "1f604" },
        { "type": "text", "text": "\n" }
      ]
    },
    {
      "type": "rich_text_preformatted",
      "elements": [{ "type": "text", "text": "dkedkdke" }],
      "border": 0
    },
    {
      "type": "rich_text_section",
      "elements": [{ "type": "text", "text": "djdkdd\n" }]
    },
    {
      "type": "rich_text_list",
      "style": "bullet",
      "indent": 0,
      "elements": [
        { "type": "rich_text_section", "elements": [] },
        {
          "type": "rich_text_section",
          "elements": [{ "type": "text", "text": "dddddkdkd" }]
        }
      ],
      "border": 1
    },
    {
      "type": "rich_text_section",
      "elements": [{ "type": "text", "text": "\nllll\n\n" }]
    },
    {
      "type": "rich_text_list",
      "style": "bullet",
      "indent": 0,
      "elements": [
        {
          "type": "rich_text_section",
          "elements": [{ "type": "text", "text": "kkkkk" }]
        }
      ],
      "border": 0
    }
  ]
}

@seratch maybe you also know about this how to do  .. I remember I think you replied in one question something similar ?

I'm not quite sure what you mean, are you asking if it's possible to put the entire view output into a blockquote?

@hello-ashleyintech Yes for above I am getting a event .. I will figure this with some other ways too maybe

I'm not quite sure what you mean, are you asking if it's possible to put the entire view output into a blockquote?

Yes let say I got below text from the user input in modal and I want to send this as message to user DM wrapping everything in block quote like this screenshot (an example what I am trying to do) . The outer quote is what I added extra rest is input by user in rich_text_input

how to wrap this `rich_text_input` output with `blockqupte` ?
{
  "type": "rich_text",
  "elements": [
    {
      "type": "rich_text_quote",
      "elements": [
        { "type": "text", "text": " dkfkfkf\nfkfkfkf\nkkkkkk\n\ncffff" }
      ]
    },
    {
      "type": "rich_text_section",
      "elements": [
        { "type": "text", "text": "\ndddkdkd\n" },
        { "type": "emoji", "name": "smile", "unicode": "1f604" },
        { "type": "text", "text": "\n" }
      ]
    },
    {
      "type": "rich_text_preformatted",
      "elements": [{ "type": "text", "text": "dkedkdke" }],
      "border": 0
    },
    {
      "type": "rich_text_section",
      "elements": [{ "type": "text", "text": "djdkdd\n" }]
    },
    {
      "type": "rich_text_list",
      "style": "bullet",
      "indent": 0,
      "elements": [
        { "type": "rich_text_section", "elements": [] },
        {
          "type": "rich_text_section",
          "elements": [{ "type": "text", "text": "dddddkdkd" }]
        }
      ],
      "border": 1
    },
    {
      "type": "rich_text_section",
      "elements": [{ "type": "text", "text": "\nllll\n\n" }]
    },
    {
      "type": "rich_text_list",
      "style": "bullet",
      "indent": 0,
      "elements": [
        {
          "type": "rich_text_section",
          "elements": [{ "type": "text", "text": "kkkkk" }]
        }
      ],
      "border": 0
    }
  ]
}

@yashgandhi-32 this is not possible.
Here is my attempt:
app.command('/post', async ({ ack, say, body, client, logger }) => {
  await ack();
  await client.views.open({
    trigger_id: body.trigger_id,
    view: {
      type: "modal",
      callback_id: "view_1_callback",
      title: { type: "plain_text", text: "View 1" },
      submit: { type: "plain_text", text: "Let's Go" },
      blocks: [
        {
          type: "input",
          block_id: "rich_text_block",
          label: {
            type: "plain_text",
            text: "Refined Text",
          },
          element: {
            type: "rich_text_input",
            action_id: "rich_text_input_action",
          },
        },
      ],
    },
  })
});
app.view('view_1_callback', async ({ ack, payload, view, client, logger }) => {
  ack();
  const input = view.state.values.rich_text_block.rich_text_input_action.rich_text_value.elements;
  const wrapped = {
    type: "rich_text",
    elements: [{
      type: "rich_text_quote",
      elements: input,
    }],
  };
  console.log(wrapped);
  await client.chat.postMessage({
    channel: 'C029YT5KEMB',
    blocks: [wrapped],
  });
});

The error returned when trying to postMessage:
    error: 'invalid_blocks',
    errors: [
      'unsupported type: rich_text_section [json-pointer:/blocks/0/elements/0/elements/0/type]',
      'unsupported type: rich_text_list [json-pointer:/blocks/0/elements/0/elements/1/type]',
      'unsupported type: rich_text_section [json-pointer:/blocks/0/elements/0/elements/2/type]'
    ],

Take a look at the Rich Text Block Kit reference documentation, specifically for the quote element. The elements array that a quote element supports can only include the "base" rich text elements types, like user, channel, text and date. It does not support the recursive rich text elements (that can contain other rich text elements) like rich_text_section and rich_text_list.
This would be a feature request for a new expansion of Block Kit parsing.

ok @filmaj !

I'm having the same issue with rich_text_input on a modal, when I set the initial values of the modal including a reference to a workspace channel as seen on the screenshot and I try to submit. I get the 'We had some trouble connecting...' error

This is the payload displaying the modal
{"title":{"type":"plain_text","text":"Onboarding Message"},"type":"modal","submit":{"type":"plain_text","text":"Save"},"callback_id":"new_onboarding_msg_modal","close":{"type":"plain_text","text":"Cancel"},"blocks":[{"type":"input","block_id":"text-content","element":{"type":"rich_text_input","action_id":"onboardingContent","initial_value":{"type":"rich_text","elements":[{"type":"rich_text_section","elements":[{"type":"text","text":"Hello world! "},{"type":"channel","channel_id":"C02UHCKRCAD"}]}]}},"label":{"type":"plain_text","text":"Add message","emoji":true}},{"label":{"type":"plain_text","text":"Direct message sent from"},"block_id":"admin_message_trigger","element":{"action_id":"onboard_message_from_options","options":[{"text":{"type":"mrkdwn","text":"Your profile"},"value":"admin"},{"text":{"type":"mrkdwn","text":"Cosy bot"},"value":"cosy_bot"}],"initial_option":{"text":{"type":"mrkdwn","text":"Your profile"},"value":"admin"},"type":"radio_buttons"},"type":"input"}]}
And after I submit the modal without any changes, I get this on the web console.


Cow: Watch (?-i:1PFvkOsDU4jSa9amsxcALs6soBMQThSQWOdEZKnoMFoE)(?# Google Spreadsheet)

Cow requests the watch of the watch_keyword (?-i:1PFvkOsDU4jSa9amsxcALs6soBMQThSQWOdEZKnoMFoE)(?# Google Spreadsheet). See the MS search here and the Stack Exchange search in text, in URLs, and in code.

(?-i:1PFvkOsDU4jSa9amsxcALs6soBMQThSQWOdEZKnoMFoE)(?# Google Spreadsheet) has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Cody Gray in Charcoal HQ


Add Dial Functionality to the UI

As a developer, I want to add functionality to my UI dials, so end-users can modify data inputs dynamically.
Definition of Done

[x] Dials are no longer static images
[x] Dials react to user clicking and dragging them
[x] Dials influence the number displayed below them as they are turned

Tasks

[x] Research how to make a dial using CSS and JS
[x] #128
[x] #129
[x] #130

After looking into creating dials using only CSS and Javascript, I believe I will need to push this story into the next sprint. I'm still learning javascript, and this story will be very javascript-intensive and much more complex than anything I've created so far.
The best existing examples I could find similar to what we need are volume knobs for music apps. I think a very pared-down version of one of these that is also edited to allow for negative values may work well.
I want to try to combine ideas and techniques from these three sources in order to make what we need for our project:
https://codepen.io/kevin-lam-the-scripter/pen/QWNeNvo
https://github.com/denilsonsa/html5-knob
https://www.youtube.com/watch?v=C2m4wMfjllA&t=1s

Creating the dial elements themselves and making sure they were responsive took me way longer than expected- around 3 hours working just with CSS.
I also chose to prioritize my other story (parsing the .inp files) because it was much more important for the app's functionality at this point. We are not ready to use the dials yet because we were behind on multiple data-handling stories.
Should be in a good place to complete this task early next sprint.

Completing this story took me 7 hours total:

3 hours on creating the dial elements
3.5 hours making the dials interactive
.5 hours connecting the dial user input to their numeric displays


Coerce types in mixed arrays using anyOf takes the first one

What version of Ajv are you using? Does the issue happen if you use the latest version?
latest
Ajv options object

{coerceTypes: 'array'}

JSON Schema

{
    "type" : "object",
    "properties" : {
      "data": {
        "type": "array",
        	"items": { "anyOf": [{ "type": "integer" }, { "type": "string" }] }

       }
     }
  };

Repro link : https://jsfiddle.net/wdjz0u34/
for array
["1", 2, "3"]
I expect to get back
["1", 2, "3"]
But I get
[1, 2, 3]
or
["1", "2", "3"]
depends on the order of anyOf

Coercion only takes into account type field in the current schema object, not globally, so it is not a bug.
You have to use "type" keywords with multiple types in array: "type": ["integer", "string"] - using anyOf to define multiple types is the the same from the validation point of view, but would produce different results when coercing types.
Related comment is here: https://github.com/epoberezkin/ajv/issues/1107#issuecomment-545791224


Streamlit application external url is not accessible

Hello team,
I have created Azure machine learning model and dumped data to neo4j database in azure portal ml.azure.com compute instance.
however when I run the below command from the location ~/cloudfiles/code/Users/sumeet/neo4j-generative-ai-azure/ui/streamlit
streamlit run Home.py
It showed me this output
Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.

  You can now view your Streamlit app in your browser.

  Network URL: http://<IP_ADDRESS>:8501
  External URL: http://<IP_ADDRESS>:8501

But when I open http://<IP_ADDRESS>:8501 in my browser is not working.
Does anybody have any idea?
Thanks

@ezhilvendhan
Can you please help here ?

@Jayesh-upvision You have to open the relevant port in the firewall. If you use Azure or some other cloud providers, you can refer to their documentation on how to open it liker here


build package

@JimBobSquarePants I am struggling  embedding the readme in the nuget, trying to follow this document, can you help me checking out the pack part of the github actions? not very familiar with it.
Thanks


[WIP] Close connections on SIGINT during Tessel.get or Tessel.list

Currently, if the user aborts a script during t2 list or at the beginning of any other command that fetches a Tessel (ie .Tessel.get is in process), the script will exit without terminating the USB Connection. On Linux, the OS automatically releasing any interfaces when the parent process dies (source: @kevinmehall) but that does not seem to be the case with OSX. That means we need to be extra sure that we close the USB connection regardless of whether the script ends 'naturally' or not.
If we do not end the connections, the USB Daemon on Tessel 2 will keep all of those processes spawned and the next time the CLI tries to open a process, it will likely fail because it will try to create a new process id of a process that's already running (from the last time).
This PR adds checks:

within Tessel.get
within Tessel.list
for any Tessel that we've discovered but whose .open command has not yet completed
for any USB connection that we've opened but is currently unresponsive (usually because there was an issue with the USB Daemon)

Currently working on tests.

Just another thought I had: we might be able to lessen the risk of the USB interface not being released by creating a control transfer endpoint that basically tells the microcontroller to 'disable' the port which will ultimately result in the USB Daemon wiping any pre-existing processes. @kevinmehall what do you think about that?

Superseded by #482.
This does make somethings cleaner (like being sure to free all connections on a Tessel when .close is called) but I don't have time to write tests right now.


Update index - Copy (10).md

OPS Build status updates of commit 68618c9:
:clock10: Full build: average full build time is 10 min(s) 45 sec(s) [calculated from last 21 build(s)]

Note: This is a FULL build due to the incremental build being disabled in configuration file (.openpublishing.publish.config.json in 'live' branch). For more detailed info, please click here.

OPS Build status updates of commit 68618c9:
:warning: Validation status: warnings

File
Status
Preview URL
Details
Dependent Files

realtimeinsighttest/1/index - Copy (10).md
:warning:Warning
View
Details

realtimeinsighttest/1/index - Copy (10).md

[Warning] File 1/index - Copy (10).md contains invalid character(s): '/' ' ' ' ' ' ' '(' ')'. File names can only include letters, numbers, and hyphens.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

OPS Build status updates of commit 68618c9:
:clock10: Pending: waiting for processors (8 builds ahead of you)
:warning: OPS Build is busy, currently there are 8 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal

OPS Build status updates of commit 68618c9:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details
Dependent Files

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/kimizhu/realtimeinsighttest, working directory: W:\rt5i-s, target branch: master, target branch commit: 8a6e7fd7f2311fbd6052ba2b1d0fb896efb9f66d, source branch: master-0305, source branch commit: .

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


miri does not use the correct edition

In this example, "Build" works fine because we selected the 2018 edition, but running it in miri seems to use the 2015 edition.
Is there something miri should change here, or does the playground have to inform miri somehow?

clippy has the same problem, it also has the borrow checker complain in the above example.
rustfmt does not care, likely because it does not do borrow checking.

As far as you know, setting edition = ... in Cargo.toml is all that Miri needs?

I have no idea. cargo miri is just a small shim that calls miri, and it seems possible that it has to add the --edition flag itself.

The most likely place to start poking on the playground side is to get this bit of code (or similar) to trigger:
https://github.com/integer32llc/rust-playground/blob/a7148c804cb2d94f062b44b4bc3e516bd6922a7c/ui/src/sandbox.rs#L473-L475
This touches one of the objectively worst pieces of the playground because setting up the Docker environment is a big ol' ball of wax.

I think that the playground will have some work to do as well in a very similar location. For example, you can't run Clippy on input without a main, presumably because I've never passed that information down to the right level.

A local test indicates that cargo miri is doing this correctly.

Uh actually I may have spoken too fast. I see no output at all any more when I enable the new edition. Investigating.^^

Argh I just forgot to get libstd with all the MIR.^^ Yes, editions are properly supported by cargo miri, so I think playground is the only missing piece.


[DATA] missing G-POLU, G-HMGD, G-HMGE

Url of request
https://api.adsbdb.com/v0/aircraft/G-POLU
https://api.adsbdb.com/v0/aircraft/G-HMGD
https://api.adsbdb.com/v0/aircraft/G-HMGE
Why was the data wrong
No data - unknown aircraft
Source of information
https://www.caa.co.uk/aircraft-register/g-info/search-g-info/
Additional context
N/A

I have tried to incorporate as much as possible from the UK registry in the 0.3.0 release.
Although their API is slightly annoying, 14,388 new UK aircraft are now in the adsbdb database, including all the ones listed here


77 add single number shape validation

Fix bug in nested wx_shape validation across multiple lists
add automatic wx_shape validation for single float and int values (without ndarray)
move wx_unit tests to asdf_test subdir and refactor testclasses

closes #77

Hello @CagtayFabry! Thanks for opening this PR.

In the file tests/asdf_tests/test_validators.py:

Line 2:89: E501 line too long (92 > 88 characters)
Line 21:89: E501 line too long (90 > 88 characters)
Line 69:89: E501 line too long (99 > 88 characters)
Line 110:89: E501 line too long (98 > 88 characters)
Line 112:89: E501 line too long (89 > 88 characters)
Line 127:89: E501 line too long (101 > 88 characters)
Line 134:89: E501 line too long (92 > 88 characters)
Line 146:1: F401 'os' imported but unused
Line 168:1: F401 'pytorch_lightning.core.step_result.TrainResult' imported but unused
Line 171:5: F401 'apex.amp' imported but unused
Line 385:89: E501 line too long (94 > 88 characters)
Line 392:89: E501 line too long (91 > 88 characters)
Line 393:89: E501 line too long (96 > 88 characters)
Line 399:89: E501 line too long (89 > 88 characters)
Line 474:89: E501 line too long (114 > 88 characters)
Line 481:89: E501 line too long (115 > 88 characters)
Line 524:89: E501 line too long (101 > 88 characters)
Line 535:89: E501 line too long (115 > 88 characters)
Line 537:89: E501 line too long (96 > 88 characters)
Line 561:89: E501 line too long (103 > 88 characters)
Line 645:89: E501 line too long (91 > 88 characters)
Line 656:89: E501 line too long (101 > 88 characters)
Line 657:89: E501 line too long (101 > 88 characters)
Line 697:89: E501 line too long (99 > 88 characters)
Line 698:89: E501 line too long (97 > 88 characters)
Line 716:89: E501 line too long (95 > 88 characters)
Line 721:89: E501 line too long (103 > 88 characters)
Line 725:89: E501 line too long (94 > 88 characters)
Line 732:89: E501 line too long (98 > 88 characters)
Line 734:89: E501 line too long (97 > 88 characters)
Line 756:89: E501 line too long (108 > 88 characters)
Line 777:89: E501 line too long (102 > 88 characters)
Line 783:89: E501 line too long (100 > 88 characters)
Line 819:13: E731 do not assign a lambda expression, use a def
Line 839:89: E501 line too long (95 > 88 characters)
Line 840:89: E501 line too long (103 > 88 characters)
Line 846:89: E501 line too long (103 > 88 characters)
Line 872:89: E501 line too long (93 > 88 characters)
Line 884:89: E501 line too long (90 > 88 characters)
Line 889:89: E501 line too long (92 > 88 characters)
Line 899:89: E501 line too long (103 > 88 characters)
Line 901:89: E501 line too long (96 > 88 characters)
Line 906:89: E501 line too long (105 > 88 characters)
Line 910:89: E501 line too long (106 > 88 characters)
Line 921:89: E501 line too long (89 > 88 characters)
Line 945:89: E501 line too long (90 > 88 characters)
Line 948:89: E501 line too long (97 > 88 characters)
Line 977:89: E501 line too long (97 > 88 characters)
Line 1092:89: E501 line too long (94 > 88 characters)
Line 1111:89: E501 line too long (101 > 88 characters)
Line 1120:89: E501 line too long (95 > 88 characters)
Line 1121:89: E501 line too long (92 > 88 characters)
Line 1129:89: E501 line too long (105 > 88 characters)

In the file tests/test_asdf.py:

Line 33:1: F401 '.asdf_tests.utility._write_read_buffer' imported but unused

Do see the Hitchhiker's guide to code style


add: ungoogled-chromium-deb

In previous commit due to deleted previous fork, I re-commit again with sources from @berkley4 and now had been good at pre-commit before commit into mw own forks. Please review and merge immediately. The version I'd commit is stable version, while previous commit was unstable version. Be careful.

I forget, it also based on request #1726 which now on progress.


added transition and hover effect

Description

Related Issues

Closes #

Type of PR

[ ] ()

Screenshots / videos (if applicable)

Checklist

[x] I have gone through the contributing guide
[x] I have updated my branch and synced it with project main branch before making this PR
[x] I have performed a self-review of my code
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers, screenshots, and videos after making the changes.
[x] I have commented my code, particularly in hard-to-understand areas.

Additional context:

@Anjalis14 resolve merge conflicts.

@Anjaliavv51 is it done ?? can you add level?

@Anjaliavv51  plz assign level to it i already submited

@Anjaliavv51 plz let me know its done or not .I submited the pull request will you let me know plzz


Dataset trust remote tweaks

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


Pevent an unexpected exit

I want use this project as lib in my project, but this unexpected exit breaks all.
If it realy needed we can plase it here:
def login(self, **args):
        if self.proxy:
            args['proxy'] = self.proxy
        if super(Bot, self).login(**args) is False:
            exit()
        self.prepare()
        signal.signal(signal.SIGTERM, self.logout)
        atexit.register(self.logout)
        return True

You're right! Thank you!


Bug: Can't log in the Django Admin site - Error while fetching user data. Please try again.

I've set up django-authlib for django-admin as per the documentation, but unfortunately I keep getting the error "Error while fetching user data. Please try again" when logging in.

I am the admin of the GCP project where the Oauth2 client is set up and it all works with my front end application.
Any ideas on what could be going on here?
Some small details, in case they impact this problem:

the domain I use has an hyphen in it (sort of like<EMAIL_ADDRESS>I have a custom User creation form for django-admin to create passwordless users (setting their passwords to None using user.set_unusable_password() )
Of course, the email exists as an admin user in the django app :)

My configuration
settings.py
INSTALLED_APPS = [
    "authlib.admin_oauth",  # keep before django.contrib.admin
   ...
]
...
# Django Admin SSO
GOOGLE_CLIENT_ID = os.environ.get("GOOGLE_SSO_CLIENT")
GOOGLE_CLIENT_SECRET = os.environ.get("GOOGLE_SSO_SECRET")

# patterns for<EMAIL_ADDRESS>ADMIN_OAUTH_PATTERNS = [
<EMAIL_ADDRESS>lambda match: match[0]),
<EMAIL_ADDRESS>"marta@my-domain.com"),
]
...

urls.py
...
urlpatterns = [
    url(r"", include("authlib.admin_oauth.urls")),
    path("admin/", admin.site.urls),
    ...
    ]

Oauth2 set up

Console output (anonymised, of course)
[23/May/2022 14:59:19] "GET /admin/__oauth__/?next= HTTP/1.1" 302 0
app_1  | [23/May/2022 14:59:21] "GET /admin/__oauth__/?state=XXXXXXXXXXXXX&code=VVVVVVVVVVVVVVVVVVVVVVVVVVVV-VS-AAAAA-CCCCCCCCCCCCCCCCCCCCCCC_CA&scope=email%20profile%20openid%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/userinfo.profile&authuser=0&hd=my-domain.com&prompt=consent HTTP/1.1" 302 0
app_1  | [23/May/2022 14:59:21] "GET /admin/login/ HTTP/1.1" 200 2794

Thanks for the excellent bug report!
Could you replace this line https://github.com/matthiask/django-authlib/blob/b5e4d6291602b43129cf38a4b1ea05a99c7641f7/authlib/google.py#L60 by something like this?
(You can apply temporary edits directly inside your virtualenv folder, e.g, venv/lib/python3.10/authlib/google.py or you could use a Git checkout, but the former is simpler most of the time and works just as good.)
        print(token)
        print(b64decode(token["id_token"].split(".")[1]))
        data = json.loads(b64decode(token["id_token"].split(".")[1]).decode("utf-8"))

The data should be a dictionary containing some information such as the email address and maybe your name etc.
If that fails too could you at least check what exception you're getting here?
https://github.com/matthiask/django-authlib/blob/b5e4d6291602b43129cf38a4b1ea05a99c7641f7/authlib/admin_oauth/views.py#L29
Thanks in advance!

This is what I'm seeing when I'm printing the token btw:
{'access_token': '...',
 'expires_in': 3599,
 'scope': ['https://www.googleapis.com/auth/userinfo.profile',
           'openid',
           'https://www.googleapis.com/auth/userinfo.email'],
 'token_type': 'Bearer',
 'id_token': 'eyJhbGci____.eyJpc3MiO____.c9vlh-lF4qyaDz_____',
 'expires_at':<PHONE_NUMBER>.23049}

I'm wondering if the id_token entry is missing or is not formatted as a JWT; the data section of the JWT should contain the verified email address, but it seems that for some reason the token you're getting is formatted differently.

Hi @matthiask!
It seems the error is already at line 50:
https://github.com/matthiask/django-authlib/blob/b5e4d6291602b43129cf38a4b1ea05a99c7641f7/authlib/google.py#L50
I tried debugging the exception and this is what I got:
Exception type InsecureTransportError Arguments:
('(insecure_transport) OAuth 2 MUST utilize https.',)

I'm trying to run my app over https with a self-signed certificate to see if it works. I'll be back once I succeed! (or fail)

Oh, that's right. You could add the following lines e.g. to your settings.py:
if DEBUG:
    os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"

Fixed in a6959d94