OCM-7619 | ci: Automated 73469 for tags supporting on classic

Here is the running log
lixue@Xue-Lis-MacBook-Pro rosa % ginkgo -focus 73469 tests/e2e
Ginkgo detected a version mismatch between the Ginkgo CLI and the version of Ginkgo imported by your packages:
  Ginkgo CLI Version:
    2.13.2
  Mismatched package versions found:
    2.13.0 used by e2e

  Ginkgo will continue to attempt to run but you may see errors (including flag
  parsing errors) and should either update your go.mod or your version of the
  Ginkgo CLI to match.

  To install the matching version of the CLI run
    go install github.com/onsi/ginkgo/v2/ginkgo
  from a path that contains a go.mod file.  Alternatively you can use
    go run github.com/onsi/ginkgo/v2/ginkgo
  from a path that contains a go.mod file to invoke the matching version of the
  Ginkgo CLI.

  If you are attempting to test multiple packages that each have a different
  version of the Ginkgo library with a single Ginkgo CLI that is currently
  unsupported.

Running Suite: e2e tests suite - /Users/lixue/Workspace/rosa/tests/e2e
======================================================================
Random Seed:<PHONE_NUMBER>

Will run 1 of 52 specs
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSStime="2024-04-28T17:24:00+08:00" level=info msg="Running command: rosa create machinepool -h -c 2atmfocid44m1621kdbsle5lpqimv1bh --name mp-73469"
time="2024-04-28T17:24:00+08:00" level=info msg="Get Combining Stdout and Stder is :\nAdd a machine pool to the cluster.\n\nUsage:\n  rosa create machinepool [flags]\n\nAliases:\n  machinepool, machinepools, machine-pool, machine-pools\n\nExamples:\n  # Interactively add a machine pool to a cluster named \"mycluster\"\n  rosa create machinepool --cluster=mycluster --interactive\n\n  # Add a machine pool mp-1 with 3 replicas of m5.xlarge to a cluster\n  rosa create machinepool --cluster=mycluster --name=mp-1 --replicas=3 --instance-type=m5.xlarge\n\n  # Add a machine pool mp-1 with autoscaling enabled and 3 to 6 replicas of m5.xlarge to a cluster\n  rosa create machinepool --cluster=mycluster --name=mp-1 --enable-autoscaling \\\n\t--min-replicas=3 --max-replicas=6 --instance-type=m5.xlarge\n\n  # Add a machine pool with labels to a cluster\n  rosa create machinepool -c mycluster --name=mp-1 --replicas=2 --instance-type=r5.2xlarge --labels=foo=bar,bar=baz,\n\n  # Add a machine pool with spot instances to a cluster\n  rosa create machinepool -c mycluster --name=mp-1 --replicas=2 --instance-type=r5.2xlarge --use-spot-instances \\\n    --spot-max-price=0.5\n\n  # Add a machine pool to a cluster and set the node drain grace period\n  rosa create machinepool -c mycluster --name=mp-1 --node-drain-grace-period=\"90 minutes\"\n\nFlags:\n      --additional-security-group-ids strings   The additional Security Group IDs to be added to the machine pool. Format should be a comma-separated list.\n      --autorepair                              Select auto-repair behaviour for a machinepool in a hosted cluster. (default true)\n      --availability-zone string                Select availability zone to create a single AZ machine pool for a multi-AZ cluster\n  -c, --cluster string                          Name or ID of the cluster.\n      --disk-size string                        Root disk size with a suffix like GiB or TiB\n      --enable-autoscaling                      Enable autoscaling for the machine pool.\n  -h, --help                                    help for machinepool\n      --instance-type string                    Instance type that should be used. (default \"m5.xlarge\")\n  -i, --interactive                             Enable interactive mode.\n      --labels string                           Labels for machine pool. Format should be a comma-separated list of 'key=value'. This list will overwrite any modifications made to Node labels on an ongoing basis.\n      --max-replicas int                        Maximum number of machines for the machine pool.\n      --min-replicas int                        Minimum number of machines for the machine pool.\n      --multi-availability-zone                 Create a multi-AZ machine pool for a multi-AZ cluster (default true)\n      --name string                             Name for the machine pool (required).\n      --node-drain-grace-period string          You may set a grace period for how long Pod Disruption Budget-protected workloads will be respected when the NodePool is being replaced or upgraded.\n                                                After this grace period, all remaining workloads will be forcibly evicted.\n                                                Valid value is from 0 to 1 week (10080 minutes), and the supported units are 'minute|minutes' or 'hour|hours'. 0 or empty value means that the NodePool can be drained without any time limitations.\n                                                This flag is only supported for Hosted Control Planes.\n  -o, --output string                           Output format. Allowed formats are [json yaml]\n      --replicas int                            Count of machines for the machine pool (required when autoscaling is disabled).\n      --spot-max-price string                   Max price for spot instance. If empty use the on-demand price. (default \"on-demand\")\n      --subnet string                           Select subnet to create a single AZ machine pool for BYOVPC cluster\n      --tags strings                            Apply user defined tags to all resources created by ROSA in AWS. Tags are comma separated, for example: 'key value, foo bar'\n      --taints string                           Taints for machine pool. Format should be a comma-separated list of 'key=value:ScheduleType'. This list will overwrite any modifications made to Node taints on an ongoing basis.\n      --tuning-configs string                   Name of the tuning configs to be applied to the machine pool. Format should be a comma-separated list. Tuning config must already exist. This list will overwrite any modifications made to node tuning configs on an ongoing basis.\n      --use-spot-instances                      Use spot instances for the machine pool.\n      --version string                          Version of OpenShift that will be used to install a machine pool for a hosted cluster, for example \"4.12.4\"\n\nGlobal Flags:\n      --color string     Surround certain characters with escape sequences to display them in color on the terminal. Allowed options are [auto never always] (default \"auto\")\n      --debug            Enable debug mode.\n      --profile string   Use a specific AWS profile from your credential file.\n      --region string    Use a specific AWS region, overriding the AWS_REGION environment variable.\n  -y, --yes              Automatically answer yes to confirm operation.\n"
time="2024-04-28T17:24:00+08:00" level=info msg="Running command: rosa create machinepool --replicas 3 --tags test:testvalue,test2:testValue/openshift -c 2atmfocid44m1621kdbsle5lpqimv1bh --name mp-73469"
time="2024-04-28T17:24:11+08:00" level=info msg="Get Combining Stdout and Stder is :\nINFO: Machine pool 'mp-73469' created successfully on cluster '2atmfocid44m1621kdbsle5lpqimv1bh'\nINFO: To view the machine pool details, run 'rosa describe machinepool --cluster 2atmfocid44m1621kdbsle5lpqimv1bh --machinepool mp-73469'\nINFO: To view all machine pools, run 'rosa list machinepools --cluster 2atmfocid44m1621kdbsle5lpqimv1bh'\n"
time="2024-04-28T17:24:11+08:00" level=info msg="Running command: rosa describe machinepool mp-73469 -c 2atmfocid44m1621kdbsle5lpqimv1bh"
time="2024-04-28T17:24:15+08:00" level=info msg="Get Combining Stdout and Stder is :\n\nID:                                    mp-73469\nCluster ID:                            2atmfocid44m1621kdbsle5lpqimv1bh\nAutoscaling:                           No\nReplicas:                              3\nInstance type:                         m5.xlarge\nLabels:                                \nTaints:                                \nAvailability zones:                    us-east-1a, us-east-1b, us-east-1c\nSubnets:                               subnet-03afc22b5ffc72ab4, subnet-02b7b9fb0c4b6ec20, subnet-011bd23ac6b95c0ed\nSpot instances:                        No\nDisk size:                             300 GiB\nAdditional Security Group IDs:         \nTags:                                  red-hat-clustertype=rosa, red-hat-managed=true, test=testvalue, test2=testValue/openshift\n"
time="2024-04-28T17:24:15+08:00" level=info msg="Running command: rosa create machinepool --replicas 3 --tags invalid -c 2atmfocid44m1621kdbsle5lpqimv1bh --name invalid-73469"
time="2024-04-28T17:24:24+08:00" level=info msg="Get Combining Stdout and Stder is :\nERR: invalid tag format for tag '[invalid]'. Expected tag format: 'key:value'\n"
time="2024-04-28T17:24:24+08:00" level=info msg="Running command: rosa create machinepool --replicas 3 --tags notagvalue: -c 2atmfocid44m1621kdbsle5lpqimv1bh --name invalid-73469"
time="2024-04-28T17:24:32+08:00" level=info msg="Get Combining Stdout and Stder is :\nERR: invalid tag format, tag key or tag value can not be empty\n"
time="2024-04-28T17:24:32+08:00" level=info msg="Running command: rosa create machinepool --replicas 3 --tags :notagkey -c 2atmfocid44m1621kdbsle5lpqimv1bh --name invalid-73469"
time="2024-04-28T17:24:40+08:00" level=info msg="Get Combining Stdout and Stder is :\nERR: invalid tag format, tag key or tag value can not be empty\n"
time="2024-04-28T17:24:40+08:00" level=info msg="Running command: rosa create machinepool --replicas 3 --tags non-ascii:值 -c 2atmfocid44m1621kdbsle5lpqimv1bh --name invalid-73469"
time="2024-04-28T17:24:49+08:00" level=info msg="Get Combining Stdout and Stder is :\nERR: Failed to add machine pool to cluster '2atmfocid44m1621kdbsle5lpqimv1bh': Invalid Machine Pool AWS tags\n"
time="2024-04-28T17:24:49+08:00" level=info msg="Remove remaining machinepool 'mp-73469'"
time="2024-04-28T17:24:49+08:00" level=info msg="Running command: rosa delete machinepool -c 2atmfocid44m1621kdbsle5lpqimv1bh mp-73469 -y"
time="2024-04-28T17:24:57+08:00" level=info msg="Get Combining Stdout and Stder is :\nINFO: Successfully deleted machine pool 'mp-73469' from cluster '2atmfocid44m1621kdbsle5lpqimv1bh'\n"
time="2024-04-28T17:24:57+08:00" level=info msg="Remove remaining machinepool 'mp-73469'"
time="2024-04-28T17:24:57+08:00" level=info msg="Running command: rosa delete machinepool -c 2atmfocid44m1621kdbsle5lpqimv1bh mp-73469 -y"
time="2024-04-28T17:25:00+08:00" level=info msg="Get Combining Stdout and Stder is :\nERR: Failed to get machine pool 'mp-73469' for cluster '2atmfocid44m1621kdbsle5lpqimv1bh'\n"
•SSSSSSSSSSSSSSSSSSSSS

Ran 1 of 52 Specs in 60.476 seconds
SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 51 Skipped
PASS

Ginkgo ran 1 suite in 1m6.50028656s
Test Suite Passed

/lgtm


Fix some vaild lang_result that get incorrectly fallbacked

Fix #41

Good point about the breaking changes @libenc.  The source of truth is the case-sensitive languages in the result_languages.txt file (which is from Google (https://github.com/opsdisk/yagooglesearch/issues/41#issuecomment-1950226602) .  I like your original code in the PR to make the lang_result match what is exactly in result_languages.txt file.
I played around with just lowercasing everything, but when using the Chrome browser, Google only respected the lang_result when the case was exactly correct ("lang_zh-CN" worked and "lang_zh-cn" didn't).
Bump the version to "1.10.0" and then I'll update the README with your contribution.

Thank you @libenc!  I also added you to the contributors section of the README.


text/calendar as string -> ClassCastException

Hello,
i have got a mail with a part having a "text/calendar" mimetype converted as a string content :
--000000000000b7af0405bf5ce7e3
Content-Transfer-Encoding: quoted-printable
Content-Type: text/calendar; charset="UTF-8"; method=REQUEST

BEGIN:VCALENDAR
PRODID:-//Events Calendar//iCal4j 1.0//EN
VERSION:2.0
CALSCALE:GREGORIAN
etc...

Which throws this exception (tested with the 6.5.1 version) :
java.lang.ClassCastException: class java.lang.String cannot be cast to class java.io.InputStream (java.lang.String and java.io.InputStream are in module java.base of loader 'bootstrap')
	at org.simplejavamail.converter.internal.mimemessage.MimeMessageParser.parseMimePartTree(MimeMessageParser.java:159)

it seems that the RFC 2445 allow this format.

Fix released in 6.5.2. Thank you for your effort!


[Bug][framework] status code 500 returned from the server

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
status code 500 returned from the  endpoint /pipelines
$ curl -i <IP_ADDRESS>:8080/pipelines
HTTP/1.1 500 Internal Server Error
Content-Type: application/json; charset=utf-8
Date: Wed, 14 Sep 2022 14:13:05 GMT
Content-Length: 0

What you expected to happen
The status code should be 200. The response body should be a valid JSON
How to reproduce

setup DevLake
request for pipelines curl -i <IP_ADDRESS>:8080/pipelines

Anything else
No response
Version
main
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

@mindlesscloud can you try again? I think my latest merged PR will have fixed this. I just setup an env and got a 428 as expected, and after running migrations got 200 with the full JSON.


Fix for segfault when HDF5 attribute has unexpected type

I encountered this problem trying to run velociraptor on a swift snapshot where NumPart_ThisFile is stored as a 64 bit integer. The code reads attributes from the input HDF5 snapshot using H5Aread, which takes a parameter mem_type_id. This should be the type of the variable in memory but the code passes in the type of the data in the file instead. This causes a segfault if they don't match.
This PR modifies the code to find the data type in memory using the overloaded hdf5_type() function and pass that to H5Aread. If the memory and file types don't exactly match HDF5 will do the type conversion and everything should still work.

It might be best to hold off on merging this for now - the segfault no longer occurs but I'm having problems getting it to recognise a swift snapshot.


Panel toggle commands no longer seem to work properly

Refs: #93786
I have the following keybindings setup:
    {
        "key": "ctrl+1",
        "command": "workbench.debug.action.toggleRepl"
    },
    {
        "key": "ctrl+2",
        "command": "workbench.actions.view.problems"
    },
    {
        "key": "ctrl+3",
        "command": "workbench.action.output.toggleOutput"
    },

And they no longer seem to work

To Verify:
Default Keybindings for Panels:
Problems (Ctrl/Cmd+Shift+M)
Output (Ctrl/Cmd+Shift+U)
Debug Console (Ctrl/Cmd+Shift+Y)
Terminal (Ctrl+`)

Move all of these views to non-default locations (e.g. as views in the Activity Bar)
Use the keybindings above to focus/toggle the views. This will hide the sidebar/panel if the view is already focused like before.

@sbatten I can't reproduce it anymore (and it only happen a few times -- but all back to back) but what happened was using (Ctrl+`) only toggled the panel, and didn't switch to the terminal. But once I toggled views on and off, I couldn't get it to happen again and everything works fine. Maybe some bad initial state?

It's important that the views are not in their default position when testing. If you reset the view locations all would be well before and after the fix. If a new insiders has not been released since this afternoon my fix may not yet be in.

I removed the verified label on the assumption that my fix has not yet shipped since I am on mobile I did not check. If I am mistaken, please re add.


feat: adding new brazilian ambassador

@nataliagranato - once you’ve signed off that DCO, we can get this merged in!

Adding @k8tgreenley to review as she manages all onboarding Ambassadors.

@nataliagranato, Katie will be adding Ambassadors in bulk. She will reach out to you with next steps on that.


feat: Improve error catching in the SQL Talk app (Gemini Function Calling)

Description
This PR adds improved error catching to the SQL Talk app. Currently, if an error is encountered due to a malformed generated SQL query or an error executing the tools / functions, then a full stack trace will appear in the app. With this PR, errors are caught at the SQL execution level and top-level application and rendered in the app (and persisted in the message history) without a full stack trace.
Special thanks to @mona19 for suggesting this change and providing a sample implementation! 🙏

[x] Follow the CONTRIBUTING Guide.
[x] You are listed as the author in your notebook or README file.

[x] Your account is listed in CODEOWNERS for the file(s).

[x] Make your Pull Request title in the https://www.conventionalcommits.org/ specification.
[x] Ensure the tests and linter pass (Run nox -s format from the repository root to format).
[x] Appropriate docs were updated (if necessary)

How friendlier errors will appear now instead of a full stack trace:

Note: the pylint warnings from CI tests are spurious since those variables are not constants, but the linter thinks they are.


[fix] - Add expression handler for UpdateExpression.

Fixes #3

Coverage decreased (-0.5%) to 99.015% when pulling 190db21f9ec4b72864d9acb32a319e6002c7701f on fix-update-expression into e36479c9b096b2c7652256c1ef1062f43d6626ff on master.

Thanks @evcohen!


update grpc to v1.32.0 to fix val.val issues while compiling TFS from source

This PR addresses issue in TFS https://github.com/tensorflow/serving/issues/1642 due to https://github.com/protocolbuffers/upb/issues/300.
The fix for upb has gone into grpc v1.32.x
This fix needs to go into TF from which TFS picks it up.
This PR uses protobuf version upgrade to v3.15.1 and grpc 1.32.2

@mihaimaruseac @ncteisen : Could you please review this PR and see if this goes into 2.5 ?

@googlebot I signed it!

@googlebot I signed it!

From the failure logs, I see that it is not able to pull the file from https://storage.googleapis.com/mirror.tensorflow.org/github.com/grpc/grpc/archive/414bb8322de2411eee1f4e841ff29d887bec7884.tar.gz. Could you please add the grpc tar.gz file to the googleapis repository @mihaimaruseac ?

This is weird. The build should pull from github if the mirror does not contain the hash. Let's try again.

There are actually compile issues
Execution platform: @org_tensorflow//third_party/toolchains:rbe_ubuntu16.04-manylinux2010
In file included from external/com_github_grpc_grpc/src/compiler/python_generator_helpers.h:29:0,
                 from external/com_github_grpc_grpc/src/compiler/protobuf_plugin.h:24,
                 from external/com_github_grpc_grpc/src/compiler/python_plugin.cc:22:
external/com_github_grpc_grpc/src/compiler/python_generator.h:47:12: error: 'uint64_t grpc_python_generator::PythonGrpcGenerator::GetSupportedFeatures() const' marked 'override', but does not override
   uint64_t GetSupportedFeatures() const override;

should I try changing the grpc version ? grpc 1.33.x is the latest release.
@mihaimaruseac any suggestions here?

We can try.

We can try.

@mihaimaruseac updated grpc to v1.33.2.

@satishpasumarthi  Can you please fix build failures ? Thanks!

@satishpasumarthi Can you please fix build failures ? Thanks!

@mihaimaruseac looks like grpc v1.33.x also didn't fix the build faillures.

Yes, we get the same error
In file included from external/com_github_grpc_grpc/src/compiler/python_generator_helpers.h:29:0,
                 from external/com_github_grpc_grpc/src/compiler/protobuf_plugin.h:24,
                 from external/com_github_grpc_grpc/src/compiler/python_plugin.cc:22:
external/com_github_grpc_grpc/src/compiler/python_generator.h:47:12: error: 'uint64_t grpc_python_generator::PythonGrpcGenerator::GetSupportedFeatures() const' marked 'override', but does not override
   uint64_t GetSupportedFeatures() const override;

Since this is a GRPC issue, we probably won't be able to update GRPC in TF.

Is the protobuf version the probable issue ? https://github.com/grpc/grpc/issues/23311

But the error does not seem to come from protobuf.

But the error does not seem to come from protobuf.

Hi @mihaimaruseac , as @vigbk mentioned , this looks like a protobuf version requirement for grpc. Please see https://github.com/grpc/grpc/pull/23324

Can we attempt to upgrade both?

@satishpasumarthi  Any update on this PR? Please. Thanks!

@satishpasumarthi Any update on this PR? Please. Thanks!

I will do it today

This PR will also fix #39467

hi @mihaimaruseac , looks like it's failed to download the protobuf?

@satishpasumarthi  Can you please fix build failures ? Thanks!

@satishpasumarthi Can you please fix build failures ? Thanks!

Hi @gbaned, I see the error Download from https://storage.googleapis.com/mirror.tensorflow.org/github.com/protocolbuffers/protobuf/archive/v3.13.0.zip failed: class com.google.devtools.build.lib.bazel.repository.downloader.UnrecoverableHttpException GET returned 404 Not Found
ERROR: An error occurred during the fetch of repository 'com_google_protobuf':
Isn't it supposed to pull the zip file automatically if it's missing? I've verified that filepath, sha256 are correct. Not sure, what am I missing here.

@mihaimaruseac Can you please assist on above comments from @satishpasumarthi. Thanks!

Investigating. The tf_http_archive seems broken. It requires 2 links one of which is the TF mirror but it should always fallback to the upstream link if the mirror is not available. Will see what broke and come back to this one.

It seems the protobug patch no longer applies

This still fails all builds :(

@satishpasumarthi  Can you please check @mihaimaruseac's comments and keep us posted ? Thanks!

@satishpasumarthi Can you please check @mihaimaruseac's comments and keep us posted ? Thanks!

I see a failure with package 'six'. But the package was not disturbed and there is no new version of it either. Does upgrading protobuf cause this issue? We've tried protobuf versions 3.12 and 3.13. Any suggestions @mihaimaruseac ?

Let's try one more time in case the last error was transient

There are a bunch of MLIR tests failing
blaze test //tensorflow/compiler/mlir/xla/tests/translate:import.hlotxt.test

You can try testing the above.

Also, to fix sanity build, you have to add the "@com_github_google_re2//:LICENSE", license to tensorflow/tools/lib_package/BUILD and tensorflow/tools/pip_package/BUILD

sure, thanks. I will take a look and try fix these errors.

Could we wait for https://github.com/tensorflow/tensorflow/issues/44485#issuecomment-752183574 ?

It has been 15 days with no activity and the awaiting response label was assigned. Is this PR still valid? Assigning the stalled label. Please comment to reassure me that this is still being worked on.

It has been 15 days with no activity and the awaiting response label was assigned. Is this PR still valid? Assigning the stalled label. Please comment to reassure me that this is still being worked on.

It's being worked on.

It's being worked on.

It has been 15 days with no activity and the awaiting response label was assigned. Is this PR still valid? Assigning the stalled label. Please comment to reassure me that this is still being worked on.

@satishpasumarthi  Any update on this PR? Please. Thanks!

Can we start to switch this to 3.15.0rc1 and then merge when 3.15 is released?

If that passes CI, yes

@satishpasumarthi Any update on this PR? Please. Thanks!

We could switch this to the released v3.15.1

@satishpasumarthi Can you upgrade the version?

@satishpasumarthi Can you upgrade the version?

will do.

It has been 14 days with no activity and the awaiting response label was assigned. Is this PR still valid? Assigning the stalled label. Please comment to reassure me that this is still being worked on.

@gbaned @bhack Upgraded protobuf to v3.15.1

@satishpasumarthi Can you please check @bhack's comments and keep us posted ? Thanks!

Can we also try to align  protobuf to the last version?

Can we also try to align protobuf to the last version?

Does this hold good for latest protobuf versions as well? I see that the for loop logic changed from v3.13.x
https://github.com/tensorflow/tensorflow/blob/master/third_party/protobuf/protobuf.patch#L39-L40

FYI - there was an attempt to update protobuf to 3.14 in the last release, but it was reverted back to 3.9.x:
https://github.com/tensorflow/tensorflow/commit/61fb67458eaadcc1873419a1d47c715599c3646d
https://github.com/tensorflow/tensorflow/commit/bd1aa7a01c377341de5b89e5d168735dcb21017b
@mihaimaruseac may have details as to why it was reverted. Protobuf is very sticky.

Approve just to trigger kokoro

@mihaimaruseac the CI build is not able to find the grpc binary. Ideally it should pull and place it in the repo, right?

@satishpasumarthi  Can you please check build failures. Thanks!

An updated protobuf version problably is required

With the specific release tag is see this protobuf version constrain https://github.com/grpc/grpc/blob/v1.36.4/requirements.txt#L4

With the specific release tag is see this protobuf version constrain https://github.com/grpc/grpc/blob/v1.36.4/requirements.txt#L4

The current protobuf being used is v3.9.2
https://github.com/tensorflow/tensorflow/blob/5bed9c49c530d8f76056b5569a508adc2ead68fe/tensorflow/workspace2.bzl#L540
I am not quite sure on how to proceed further on this.

@mihaimaruseac  Can you please assist on above comments from @satishpasumarthi. Thanks!

An updated protobuf version is probably required
...
The current protobuf being used is v3.9.2

Should it be v3.12.x or greater? https://github.com/grpc/grpc/pull/23324

@satishpasumarthi  Can you please fix build failures ? Thanks!

@satishpasumarthi  Any update on this PR? Please. Thanks!

@satishpasumarthi Any update on this PR? Please. Thanks!

I see this error in the logs Download from https://storage.googleapis.com/mirror.tensorflow.org/github.com/grpc/grpc/archive/v1.36.4.tar.gz failed: class com.google.devtools.build.lib.bazel.repository.downloader.UnrecoverableHttpException GET returned 404 Not Found
Let me try to figure out what's going on here

Where are we at with this PR? TensorFlow so very much needs a grpc/protobuf update.

Yeah, I suspect those 404s will go away once this is merged and that tar is cached.
Cool fancy license checker. That problem should be easy enough to fix - I assume that just needs a new line the tf_http_archive stanza?

Hi @mihaimaruseac @jayfurmanek  Why is it complaining about missing license files when what I did was just version update?
Also, where should I include the license file ? In workspace2.bzl ? The error log suggests adding the missing logs to //tensorflow/tools/pip_package:licenses

@mihaimaruseac @jayfurmanek Can you please assist on above comments from @satishpasumarthi. Thanks!

So the problem with the license sanity check is that the newer grpc includes some new things.
For one, upb is now living in the grpc code tree at /third_party/upb so the license checker is picking up on that
The new grpc also has a re2 submodule that is sligtly different to the one already included/vendored by TensorFlow.
The license checker just wants to know where the licenses are for these packages. I think maybe the more important question is if TensorFlow wants to vendor these differently and have them listed under tensorflow/third_party. I don't know if the potentially different versions of re2 would cause a problem.
Perhaps @mihaimaruseac can advise.
In addition the license checker stuff, this PR is also causing a bunch of tests to fail, presumably because the newer grpc uses function from newer protobuf version than the 3.9 version in TF by default. I think at one point you had a newer protobuf version attached to this PR as well, perhaps that needs to be added back.

btw, the license checker expects license locations to be listed here:
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/pip_package/BUILD#L181

Thanks @jayfurmanek for finding the culprit.
I think we can either try to use the versions vendored by grpc or those by TF, but definitely not both.
Going with the versions vendored by grpc requires updating license files and code paths as well as removing the other versions.
Going with the versions provided by TF would still require a change where we don't pull in the grpc deps, if possible.
Unfortunately, I won't be able to take a look at this for a while, apologies for the delay

@satishpasumarthi wondering if you are still actively working on this issue?

@satishpasumarthi wondering if you are still actively working on this issue?

Hi, I am waiting on @mihaimaruseac's feedback.

Closing due to https://github.com/tensorflow/tensorflow/commit/84f40925e929d05e72ab9234e53c729224e3af38


getOne method doesn't allow for select and $expand

Hi;
Not sure if I'm using the methods/functions in the wrong way, but basically, I'm trying to do something like this:
const project = (await event.locals.pb.collection('projects').getOne(
			event.params.project_id,
			createOptions({
				select: {
					$expand: {
						stage: { name: true },
						user: { id: true, collectionId: true, avatar: true, username: true }
					}
				}
			})
		));

but I get this error:
No overload matches this call.
  Overload 1 of 3, '(options: TypedRecordFullListQueryParams<GenericCollection, SelectWithExpand<GenericCollection>>): TypedRecordFullListQueryParams<...>', gave the following error.
    Type '{ $expand: { stage: { name: true; }; user: { id: true; collectionId: true; avatar: true; username: true; }; }; }' is not assignable to type 'SelectWithExpand<GenericCollection>'.
      Type '{ $expand: { stage: { name: true; }; user: { id: true; collectionId: true; avatar: true; username: true; }; }; }' is not assignable to type 'Select<GenericCollection>'.
        Property '$expand' is incompatible with index signature.
          Type '{ stage: { name: true; }; user: { id: true; collectionId: true; avatar: true; username: true; }; }' is not assignable to type 'boolean | undefined'.

Overload 2 of 3, '(options: TypedRecordListQueryParams<GenericCollection, SelectWithExpand<GenericCollection>>): TypedRecordListQueryParams<...>', gave the following error.
    Type '{ $expand: { stage: { name: true; }; user: { id: true; collectionId: true; avatar: true; username: true; }; }; }' is not assignable to type 'SelectWithExpand<GenericCollection>'.
      Type '{ $expand: { stage: { name: true; }; user: { id: true; collectionId: true; avatar: true; username: true; }; }; }' is not assignable to type 'Select<GenericCollection>'.
        Property '$expand' is incompatible with index signature.
          Type '{ stage: { name: true; }; user: { id: true; collectionId: true; avatar: true; username: true; }; }' is not assignable to type 'boolean | undefined'.

Overload 3 of 3, '(options: TypedRecordQueryParams<SelectWithExpand<GenericCollection>>): TypedRecordQueryParams<SelectWithExpand<GenericCollection>>', gave the following error.
    Type '{ $expand: { stage: { name: true; }; user: { id: true; collectionId: true; avatar: true; username: true; }; }; }' is not assignable to type 'SelectWithExpand<GenericCollection>'.
      Type '{ $expand: { stage: { name: true; }; user: { id: true; collectionId: true; avatar: true; username: true; }; }; }' is not assignable to type 'Select<GenericCollection>'.
        Property '$expand' is incompatible with index signature.
          Type '{ stage: { name: true; }; user: { id: true; collectionId: true; avatar: true; username: true; }; }' is not assignable to type 'boolean | undefined'.ts(2769)

I also tried doing this (sorry, but I couldn't find clear intructions from the readme.md about using the lib) but this, although TS doesn't complain, it just returns the surface-level fields, but nothing for the expanded ones.
const project = await event.locals.pb.collection('projects').getOne(event.params.project_id, {
			select: {
				$expand: {
					stage: { name: true },
					user: { id: true, collectionId: true, avatar: true, username: true }
				}
			}
		});

Don't know if I'm being clear enough, but anyone mind helping me out?
Thanks.

Hi @shyakadavis,
can you create a minimal reproduction that includes your schema? I don't think i can help you otherwise.
Maybe try using the beta version where you don't even need createOptions.
Take a look at it here: https://github.com/david-plugge/typed-pocketbase/tree/custom-client
The version is 0.1.0-pre.0

Hey, @david-plugge
I don't mind trying out the new version with the Client, but it seems it's broken-ish.
Doing
pnpm add<EMAIL_ADDRESS>
yields this error in several places:
Cannot find module 'typed-pocketbase' or its corresponding type declarations.ts(2307)

Vite/SvelteKit has a better description:
[plugin:vite:import-analysis] Failed to resolve entry for package "typed-pocketbase". The package may have incorrect main/module/exports specified in its package.json.

Are you sure it works fine and it's not something wrong on my part?
Thanks.

Hey, thanks for reporting the issue. I released a new version 0.1.0-pre.2 which should resolve the type issue. There are a few more additions aswell like support for realtime events which where missing before. Give it a try and let me know if there are still some issues. My goal ist to release 0.1.0 at the end of this week.

Hey, @david-plugge
Thanks for your continued work on the lib.
The new version works great overall, but there are some wrong/flawed cases. For example, take this;
(Note: If sharing my entire generated schema is simpler, please let me know) 🙂
I have a projects collection, with a user field, which in turn is a multiple relation to the users collection. Thus, I should expect the user field to be typed as string[] which is does splendidly.
The problem: When I do expand on this field when calling the project, it's typed as
expand?: {
    user?: {
        id: string;
        collectionId: string;
        avatar: string;
        username: string;
    } | undefined;

which breaks in my Svelte component where I'm iterating like so:
{#if data.project.expand && data.project.expand.user}

Founder(s)

			{#each data.project.expand.user as user}
				<Avatar.Root class={cn(`ring-background size-9 ring-2`)}>
					<Avatar.Image
						src={get_image_url({
							collection_id: user.collectionId,
							record_id: user.id,
							file_name: user.avatar,
							size: '50x50'
						})}
<EMAIL_ADDRESS>					/>
					<Avatar.Fallback>
						{user.username.slice(0, 1).toUpperCase()}
					</Avatar.Fallback>
				</Avatar.Root>
			{/each}

{/if}

with this error:
Argument of type '{ id: string; collectionId: string; avatar: string; username: string; }' is not assignable to parameter of type 'ArrayLike<unknown> | Iterable<unknown>'.ts(2345)

It should be typed as string[] on expand as well, right?
P.S: If I encounter other issues, will let you know. 🙂

Btw, how can I tell typescript that I know for certain that the expand object in not undefined, and that it has these fields... preferably at the query-building-step.
There are a lot of TS comp errors that have arisen because of the undefined cases, some due to that same issue above of not typing arrays during expand, and some are too vague to track down. For example, when working with svelte-headless-table here's one.
Type 'TableViewModel<RecordModel, { select: TablePlugin<any, SelectedRowsState<any>, Record<string, never>, SelectedRowsPropSet>; ... 4 more ...; hide: TablePlugin<...>; }>' is not assignable to type 'TableViewModel<{ name: string; id: string; created: string; expand: { user: { name: string; id: string; collectionId: string; avatar: string; username: string; }[]; stage: { name: string; }; }; }, AnyPlugins>'.
  Types of property 'flatColumns' are incompatible.
    Type 'FlatColumn<RecordModel, { select: TablePlugin<any, SelectedRowsState<any>, Record<string, never>, SelectedRowsPropSet>; ... 4 more ...; hide: TablePlugin<...>; }, any>[]' is not assignable to type 'FlatColumn<{ name: string; id: string; created: string; expand: { user: { name: string; id: string; collectionId: string; avatar: string; username: string; }[]; stage: { name: string; }; }; }, AnyPlugins, any>[]'.
          Type 'FlatColumn<RecordModel, { select: TablePlugin<any, SelectedRowsState<any>, Record<string, never>, SelectedRowsPropSet>; ... 4 more ...; hide: TablePlugin<...>; }, any>' is not assignable to type 'FlatColumn<{ name: string; id: string; created: string; expand: { user: { name: string; id: string; collectionId: string; avatar: string; username: string; }[]; stage: { name: string; }; }; }, AnyPlugins, any>'.
                  Types of property 'header' are incompatible.
          Type 'HeaderLabel<RecordModel, { select: TablePlugin<any, SelectedRowsState<any>, Record<string, never>, SelectedRowsPropSet>; ... 4 more ...; hide: TablePlugin<...>; }>' is not assignable to type 'HeaderLabel<{ name: string; id: string; created: string; expand: { user: { name: string; id: string; collectionId: string; avatar: string; username: string; }[]; stage: { name: string; }; }; }, AnyPlugins>'.
                      Type '(cell: HeaderCell<RecordModel, AnyPlugins>, state: TableState<RecordModel, { select: TablePlugin<any, SelectedRowsState<any>, Record<...>, SelectedRowsPropSet>; ... 4 more ...; hide: TablePlugin<...>; }>) => RenderConfig' is not assignable to type 'HeaderLabel<{ name: string; id: string; created: string; expand: { user: { name: string; id: string; collectionId: string; avatar: string; username: string; }[]; stage: { name: string; }; }; }, AnyPlugins>'.
                                    Type '(cell: HeaderCell<RecordModel, AnyPlugins>, state: TableState<RecordModel, { select: TablePlugin<any, SelectedRowsState<any>, Record<...>, SelectedRowsPropSet>; ... 4 more ...; hide: TablePlugin<...>; }>) => RenderConfig' is not assignable to type '(cell: HeaderCell<{ name: string; id: string; created: string; expand: { user: { name: string; id: string; collectionId: string; avatar: string; username: string; }[]; stage: { name: string; }; }; }, AnyPlugins>, state: TableState<...>) => RenderConfig'.
                                                    Types of parameters 'cell' and 'cell' are incompatible.
                  Type 'HeaderCell<{ name: string; id: string; created: string; expand: { user: { name: string; id: string; collectionId: string; avatar: string; username: string; }[]; stage: { name: string; }; }; }, AnyPlugins>' is not assignable to type 'HeaderCell<RecordModel, AnyPlugins>'.
                                      Types of property 'label' are incompatible.
                      Type 'HeaderLabel<{ name: string; id: string; created: string; expand: { user: { name: string; id: string; collectionId: string; avatar: string; username: string; }[]; stage: { name: string; }; }; }, AnyPlugins>' is not assignable to type 'HeaderLabel<RecordModel, AnyPlugins>'.
                        Type '(cell: HeaderCell<{ name: string; id: string; created: string; expand: { user: { name: string; id: string; collectionId: string; avatar: string; username: string; }[]; stage: { name: string; }; }; }, AnyPlugins>, state: TableState<...>) => RenderConfig' is not assignable to type 'HeaderLabel<RecordModel, AnyPlugins>'.

Another issue (sorry if they are becoming too much under this issue #31 🙂)
Problem: Updating the users schema, with some fields I want, refuses said fields if some other fields are missing. For example, trying to update the user's username like so:
// form.data just contains `username` key-value pair
await event.locals.pb.from('users').update(event.locals.user.id, form.data);

errors like so:
Argument of type '{ username: string; }' is not assignable to parameter of type 'UsersUpdate'.
  Type '{ username: string; }' is missing the following properties from type 'UsersUpdate': password, passwordConfirmts(2345)

I tried having a look at UsersUpdate and not much there, but, it seems password & passwordConfirm in the parent AuthCollectionUpdate are always required, thus affecting UsersUpdate. They should be overwritten when defining the UsersUpdate interface, right?

Another issue: 😅
Problem: createSort generates an invalid sort field.
I'm simply doing like specified in the example of your P.R #29 like so:
	const sort = event.locals.pb.from('projects').createSort('+created');

	const filter = event.locals.pb
		.from('projects')
		.createFilter(`user.id ?= "${event.locals.user.id}"`);

	const select = event.locals.pb.from('projects').createSelect({
		id: true,
		name: true,
		created: true,
		expand: {
			stage: { name: true },
			user: { collectionId: true, id: true, avatar: true, username: true, name: true }
		}
	});

	const projects = await event.locals.pb.from('projects').getFullList({ select, filter, sort });

From the PB dashboard under logs, this is the generated data.url:
/api/collections/projects/records?page=1&perPage=500&skipTotal=1&fields=id%2Cname%2Ccreated%2Cexpand.stage.name%2Cexpand.user.collectionId%2Cexpand.user.id%2Cexpand.user.avatar%2Cexpand.user.username%2Cexpand.user.name&expand=stage%2Cuser&sort=undefined

I don't know why it's not being generated, and/or how to inspect where it's going wrong.

Btw, is there no built-in helpers for this complex kind of filter:
	const filter = event.locals.pb
		.from('projects')
		.createFilter(`user.id ?= "${event.locals.user.id}"`);

Another issue (sorry if they are becoming too much under this issue #31 🙂)
Problem: Updating the users schema, with some fields I want, refuses said fields if some other fields are missing. For example, trying to update the user's username like so:
// form.data just contains `username` key-value pair
await event.locals.pb.from('users').update(event.locals.user.id, form.data);

errors like so:
Argument of type '{ username: string; }' is not assignable to parameter of type 'UsersUpdate'.
  Type '{ username: string; }' is missing the following properties from type 'UsersUpdate': password, passwordConfirmts(2345)

I tried having a look at UsersUpdate and not much there, but, it seems password & passwordConfirm in the parent AuthCollectionUpdate are always required, thus affecting UsersUpdate. They should be overwritten when defining the UsersUpdate interface, right?

good catch, the update type should be optional

Here you go, @david-plugge
/**
 * This file was @generated using typed-pocketbase
 */

// https://pocketbase.io/docs/collections/#base-collection
export interface BaseCollectionResponse {
	/**
	 * 15 characters string to store as record ID.
	 */
	id: string;
	/**
	 * Date string representation for the creation date.
	 */
	created: string;
	/**
	 * Date string representation for the creation date.
	 */
	updated: string;
	/**
	 * The collection id.
	 */
	collectionId: string;
	/**
	 * The collection name.
	 */
	collectionName: string;
}

// https://pocketbase.io/docs/api-records/#create-record
export interface BaseCollectionCreate {
	/**
	 * 15 characters string to store as record ID.
	 * If not set, it will be auto generated.
	 */
	id?: string;
}

// https://pocketbase.io/docs/api-records/#update-record
export interface BaseCollectionUpdate {}

// https://pocketbase.io/docs/collections/#auth-collection
export interface AuthCollectionResponse extends BaseCollectionResponse {
	/**
	 * The username of the auth record.
	 */
	username: string;
	/**
	 * Auth record email address.
	 */
	email: string;
	/**
	 * Whether to show/hide the auth record email when fetching the record data.
	 */
	emailVisibility: boolean;
	/**
	 * Indicates whether the auth record is verified or not.
	 */
	verified: boolean;
}

// https://pocketbase.io/docs/api-records/#create-record
export interface AuthCollectionCreate extends BaseCollectionCreate {
	/**
	 * The username of the auth record.
	 * If not set, it will be auto generated.
	 */
	username?: string;
	/**
	 * Auth record email address.
	 */
	email?: string;
	/**
	 * Whether to show/hide the auth record email when fetching the record data.
	 */
	emailVisibility?: boolean;
	/**
	 * Auth record password.
	 */
	password: string;
	/**
	 * Auth record password confirmation.
	 */
	passwordConfirm: string;
	/**
	 * Indicates whether the auth record is verified or not.
	 * This field can be set only by admins or auth records with "Manage" access.
	 */
	verified?: boolean;
}

// https://pocketbase.io/docs/api-records/#update-record
export interface AuthCollectionUpdate {
	/**
	 * The username of the auth record.
	 */
	username?: string;
	/**
	 * The auth record email address.
	 * This field can be updated only by admins or auth records with "Manage" access.
	 * Regular accounts can update their email by calling "Request email change".
	 */
	email?: string;
	/**
	 * Whether to show/hide the auth record email when fetching the record data.
	 */
	emailVisibility?: boolean;
	/**
	 * Old auth record password.
	 * This field is required only when changing the record password. Admins and auth records with "Manage" access can skip this field.
	 */
	oldPassword?: string;
	/**
	 * New auth record password.
	 */
	password: string;
	/**
	 * New auth record password confirmation.
	 */
	passwordConfirm: string;
	/**
	 * Indicates whether the auth record is verified or not.
	 * This field can be set only by admins or auth records with "Manage" access.
	 */
	verified?: boolean;
}

// https://pocketbase.io/docs/collections/#view-collection
export interface ViewCollectionRecord {
	id: string;
}

// utilities

type MaybeArray<T> = T | T[];

// ===== users =====

export interface UsersResponse extends AuthCollectionResponse {
	collectionName: 'users';
	name: string;
	avatar: string;
}

export interface UsersCreate extends AuthCollectionCreate {
	name?: string;
	avatar?: File;
}

export interface UsersUpdate extends AuthCollectionUpdate {
	name?: string;
	avatar?: File;
}

export interface UsersCollection {
	type: 'auth';
	collectionId: string;
	collectionName: 'users';
	response: UsersResponse;
	create: UsersCreate;
	update: UsersUpdate;
	relations: {
		'posts(user)': PostsCollection;
		'projects(user)': ProjectsCollection;
	};
}

// ===== tags =====

export interface TagsResponse extends BaseCollectionResponse {
	collectionName: 'tags';
	name: string;
}

export interface TagsCreate extends BaseCollectionCreate {
	name: string;
}

export interface TagsUpdate extends BaseCollectionUpdate {
	name?: string;
}

export interface TagsCollection {
	type: 'base';
	collectionId: string;
	collectionName: 'tags';
	response: TagsResponse;
	create: TagsCreate;
	update: TagsUpdate;
	relations: {
		'posts(tags)': PostsCollection;
	};
}

// ===== posts =====

export interface PostsResponse extends BaseCollectionResponse {
	collectionName: 'posts';
	post: string;
	image: string;
	user: string;
	tags: Array<string>;
}

export interface PostsCreate extends BaseCollectionCreate {
	post: string;
	image?: File;
	user?: string;
	tags?: MaybeArray<string>;
}

export interface PostsUpdate extends BaseCollectionUpdate {
	post?: string;
	image?: File;
	user?: string;
	tags?: MaybeArray<string>;
	'tags+'?: MaybeArray<string>;
	'tags-'?: MaybeArray<string>;
}

export interface PostsCollection {
	type: 'base';
	collectionId: string;
	collectionName: 'posts';
	response: PostsResponse;
	create: PostsCreate;
	update: PostsUpdate;
	relations: {
		user: UsersCollection;
		tags: TagsCollection;
	};
}

// ===== projects =====

export interface ProjectsResponse extends BaseCollectionResponse {
	collectionName: 'projects';
	name: string;
	tagline: string;
	description: string;
	url: string;
	category: string;
	stage: string;
	user: Array<string>;
	thumbnail: string;
	twitter: string;
	github: string;
	mrr: number;
}

export interface ProjectsCreate extends BaseCollectionCreate {
	name: string;
	tagline: string;
	description: string;
	url: string | URL;
	category: string;
	stage: string;
	user: MaybeArray<string>;
	thumbnail?: File;
	twitter?: string | URL;
	github?: string | URL;
	mrr?: number;
}

export interface ProjectsUpdate extends BaseCollectionUpdate {
	name?: string;
	tagline?: string;
	description?: string;
	url?: string | URL;
	category?: string;
	stage?: string;
	user?: MaybeArray<string>;
	'user+'?: MaybeArray<string>;
	'user-'?: MaybeArray<string>;
	thumbnail?: File;
	twitter?: string | URL;
	github?: string | URL;
	mrr?: number;
	'mrr+'?: number;
	'mrr-'?: number;
}

export interface ProjectsCollection {
	type: 'base';
	collectionId: string;
	collectionName: 'projects';
	response: ProjectsResponse;
	create: ProjectsCreate;
	update: ProjectsUpdate;
	relations: {
		stage: StagesCollection;
		user: UsersCollection;
	};
}

// ===== stages =====

export interface StagesResponse extends BaseCollectionResponse {
	collectionName: 'stages';
	name: string;
}

export interface StagesCreate extends BaseCollectionCreate {
	name: string;
}

export interface StagesUpdate extends BaseCollectionUpdate {
	name?: string;
}

export interface StagesCollection {
	type: 'base';
	collectionId: string;
	collectionName: 'stages';
	response: StagesResponse;
	create: StagesCreate;
	update: StagesUpdate;
	relations: {
		'projects(stage)': ProjectsCollection;
	};
}

// ===== Schema =====

export type Schema = {
	users: UsersCollection;
	tags: TagsCollection;
	posts: PostsCollection;
	projects: ProjectsCollection;
	stages: StagesCollection;
};

Btw, is there no built-in helpers for this complex kind of filter:

There is, you can use the array syntax:
	const filter = event.locals.pb
		.from('projects')
		.createFilter(["user.id", "?=", "event.locals.user.id"]);

There is no good name for this filter i think, if you have one, feel free to suggest it :)

I found the issue regarding sort, the new version should fix that

Hey. Thanks for the quick patches; sadly, they didn't work.

There is no good name for this filter i think, if you have one, feel free to suggest it :)

So, this is the any/at-least-one-of operator (?=), and to be honest, I don't see how possible it is to abbreviate the thing. 😅
I can't come up with anything right now, but will ping you if I do. 🙂

I found the issue regarding sort, the new version 0.1.0-pre.3 should fix that

It didn't work 🙈
Btw, is there any way to inspect locally the output of the formulated query? Might help me help you pinpoint what's wrong.

Can you also create a minimal reproduction that i can take a look at?

Hmm... I can try. Will let you know. 🙂

Any updates on the other 2 issues; i.e.

Expand doesn't correctly type multiple foreign relation as Array<of_thing> but outputs of_thing | undefined
password & passwordConfirm in the parent AuthCollectionUpdate are always required, thus affecting UsersUpdate

Any updates on the other 2 issues; i.e.

Expand doesn't correctly type multiple foreign relation as Array<of_thing> but outputs of_thing | undefined
password & passwordConfirm in the parent AuthCollectionUpdate are always required, thus affecting UsersUpdate

This was fixed in the new version, thanks for pointing out!

sadly, they didn't work.

Somehow the package wasn't build before publishing, you can try out the new version

Btw, is there any way to inspect locally the output of the formulated query? Might help me help you pinpoint what's wrong.

You can check in the network tab if you are using a browser. Or you can supply your own fetch function that logs the url

Thanks a lot @david-plugge
AFAICT, everything is working smoothly on my end with the new custom client (as of pre.6).
The only remark/annoyance is the undefined possibility on all expands and the fields contained within, but I managed to work my way around it. It was not that much of a big a deal.
Again, thanks a ton for the lib. 🙂

Awesome! I agree that it's somewhat annoying having to check for result.expand.whatever, but there are situatuations where it can be empty.
Glad you like it. Thank you for reporting all the issues and helping me figure out how to make this package even better.


Adds parallel test for generating mesh tdofs / global IDs [partest dev]

Adds a parallel unit test to mfem.
Adds a test to generate True DOFs for the vertices, edges, faces, elements and boundary elements of a parallel mesh, which can be used in applications that require global IDs for the mesh cells. This works for low-order and high-order meshes, but currently only for conforming meshes.

Details:

I developed this as I was working through #1102.
The tdofs for the elements are generated using:

an order-1 H1 space for the vertex tdofs
an order-0 L2 space for the element tdofs
an order-1 ND space for the edge tdofs in 3D
an order-0 RT space for the face tdofs in 3D and edge tdofs in 2D

Current limitations:

Does not currently work for non-conforming meshes. I'd appreciate some help with this.
I added par_unit_test to the cmake build system, but need some help adding this to the gmake build system.

Regarding the CI:

I am pretty sure the travis failures are due to the fact that the new par-unit-test has only been added to the cmake build system and not to the gmake build system
Looking at the appveyor biuld, it looks like the parallel version is being build, but not tested on Windows.  Are there any reasons not to test the parallel version through Appveyor?

See after_build section here: https://github.com/mfem/mfem/blob/c55c80d17b82d80de04b849dd526e17044f8c99a/.appveyor.yml#L42-L49


runner/execer/fake: test output

https://phabricator.twitter.biz/D7599

Current coverage is 74.97% (diff: 100%)

Merging #96 into master will increase coverage by 0.44%

@@             master        #96   diff @@
==========================================
  Files            48         48
  Lines          2234       2234
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           1665       1675    +10
+ Misses          488        478    -10
  Partials         81         81

Powered by Codecov. Last update 7d64c01...185bce8

LGTM


Add support for Gradle Configuration Cache

The gradle plugin for kover seems to break gradle configuration cache. Please consider updating it to work with this feature.
Example problems:
17 problems were found storing the configuration cache, 7 of which seem unique.

Task :koverMergedHtmlReport of type kotlinx.kover.tasks.KoverMergedHtmlReportTask: cannot serialize object of type 'org.gradle.api.tasks.testing.Test', a subtype of 'org.gradle.api.Task', as these are not supported with the configuration cache.
See https://docs.gradle.org/7.4/userguide/configuration_cache.html#config_cache:requirements:task_access
Task :koverMergedVerify of type kotlinx.kover.tasks.KoverMergedVerificationTask: cannot serialize object of type 'org.gradle.api.tasks.testing.Test', a subtype of 'org.gradle.api.Task', as these are not supported with the configuration cache.
See https://docs.gradle.org/7.4/userguide/configuration_cache.html#config_cache:requirements:task_access
Task :koverMergedXmlReport of type kotlinx.kover.tasks.KoverMergedXmlReportTask: cannot serialize object of type 'org.gradle.api.tasks.testing.Test', a subtype of 'org.gradle.api.Task', as these are not supported with the configuration cache.
See https://docs.gradle.org/7.4/userguide/configuration_cache.html#config_cache:requirements:task_access
Task :koverVerify of type kotlinx.kover.tasks.KoverVerificationTask: cannot serialize object of type 'org.gradle.api.tasks.testing.Test', a subtype of 'org.gradle.api.Task', as these are not supported with the configuration cache.
See https://docs.gradle.org/7.4/userguide/configuration_cache.html#config_cache:requirements:task_access
Task :utils:common:koverVerify of type kotlinx.kover.tasks.KoverVerificationTask: cannot serialize object of type 'org.gradle.api.tasks.testing.Test', a subtype of 'org.gradle.api.Task', as these are not supported with the configuration cache.
See https://docs.gradle.org/7.4/userguide/configuration_cache.html#config_cache:requirements:task_access
Task :utils:common:test of type org.gradle.api.tasks.testing.Test: cannot serialize object of type 'org.gradle.api.internal.artifacts.configurations.DefaultConfiguration', a subtype of 'org.gradle.api.artifacts.Configuration', as these are not supported with the configuration cache.
See https://docs.gradle.org/7.4/userguide/configuration_cache.html#config_cache:requirements:disallowed_types
Task :utils:common:test of type org.gradle.api.tasks.testing.Test: cannot serialize object of type 'org.gradle.api.internal.project.DefaultProject', a subtype of 'org.gradle.api.Project', as these are not supported with the configuration cache.
See https://docs.gradle.org/7.4/userguide/configuration_cache.html#config_cache:requirements:disallowed_types

@NikolayMetchev, a release with these changes will be published in the coming days.

@NikolayMetchev, you may check on version 0.5.1.

Yep, seems to be working now


A cleanup of the buffers in main

eliminate some "magic numbers"
do not use the stack for the buffers

Thanks, this has been merged.


vtworker: Fix bug that an empty form value for "excludeTables" resulted

in skipping all tables.
@aaijazi

LGTM


Continuation Token not properly parsed

This has two parts:

SDK Work: The type in the cookiecutter was incorrectly hinted as dict, when it should be of type Response. (Minor.)
Tap Work: The code needs more work to properly handle the continuationToken contract. (Not blocked.)

Solved continuation token issue by treating with url_decode so that when was passed back in subsequent API call it was formed as expected by the endpoint


Numba 0.13.4 import error no attribute 'unittest_support' in IPython Notebook

Environment (Anaconda 2.0.1 on OS X 10.9.4):
Python 3.4.1
Numba 0.13.4
IPython 2.2.0
In IPython notebook, when import numba, the following error will be raised:
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-5-589cceeecd62> in <module>()
----> 1 from numba import double
      2 from numba.decorators import jit, autojit
      3
      4 pairwise_numba = autojit(pairwise_python)
      5

/Users/zh/projects/anaconda/envs/py34/lib/python3.4/site-packages/numba/__init__.py in <module>()
      4 from __future__ import print_function, division, absolute_import
      5 import re
----> 6 from . import testing, decorators
      7 from ._version import get_versions
      8 from . import special, types, config

/Users/zh/projects/anaconda/envs/py34/lib/python3.4/site-packages/numba/testing.py in <module>()
      3 import contextlib
      4
----> 5 import numba.unittest_support as unittest
      6
      7 from numba.tests import NumbaTestProgram

AttributeError: 'module' object has no attribute 'unittest_support'

Running it in IPython's console seems fine without any error.
Also, I can confirm that the there's no error for the previous version of Numba (0.13.0).

Numba should work fine in a notebook these days, therefore I'm closing. Don't hesitate to open a new issue if it still fails with a recent version of Numba.


Update devfile schema

What type of PR is this?
/kind feature
What does does this PR do / why we need it:
Update devfile schema to unblock some issues.
New in Schema: Apply, endpoint changes, starter project, description of volume mounts are new changes in the schema.
This PR updates the schema and go structs here pkg/devfile/parser/data/2.0.0/types.go, we are not using go structs from here Directly we consume from pkg/devfile/parser/data/common/types.go, issue stakeholders can update corresponding struct  accordingly.
Which issue(s) this PR fixes:
Fixes #?
PR acceptance criteria:

[ ] Unit test

[ ] Integration test

[ ] Documentation

How to test changes / Special notes to the reviewer:
Tests should pass

Disabled parent devfile tests
https://github.com/openshift/odo/issues/3638

/approve

/lgtm

/lgtm

/retest

/lgtm


Switch from master to main branch

We should switch this repo to use the main branch as the name for the primary branch to match the other repositories being used for GOV.UK

[x] Change ci.yml workflow to detect if on the main branch rather than the master branch for publishing the gem
[x] Rename the master branch to main
[x] Update Heroku deployment to look for main rather than master
[x] Let everyone know that they need to update their local branch to main

Taken from How to switch a Git default branch from master to main, omitting:

Jenkins, as this repo no longer uses Jenkins
Updating the release app, since it's not used to release this application

I've raised a pull request to update the GitHub Actions workflow: https://github.com/alphagov/govuk_publishing_components/pull/2639

The tasks have been completed - but I think this should be closed only when a gem has been successfully released from the main branch.

We've had two releases since then – both went fine


[BUG] Backend has no authentication checks in place

Environment
Self-Hosted (Bare Metal)
Version
2.0.8
Describe the problem
To begin with I'm not sure if this should be taken as a security issue or a documentation issue.
Currently the official documentiation talks about the safety of the password and the use of keycloak.

With basic auth, all logic is happening on the client-side, which could mean a skilled user could manipulate the code to view parts of your configuration, including the hash.

This suggests that the use of basic auth has no futher security implications aside from the hash being visible. However anyone, without authentication, can still use the node server's functions. Prohibiting the use of the functions on the client side is not proper security.
I am no security expert but I think that this exposes a few immediate ways this software can exploited:

Anyone can rebuild the application to their likings (without authentication)
The available storage space can be filled with newly saved config files
The machine can be slowed by continuous rebuilds and in case of mini PCs (like a Raspberry Pi) they can be rendered useless.

I suggest that either the security part of the documentation and the README should have a clear warning that indicates that this software should not be run as an internet facing service because of security complications OR a proper backend check for authentication is ought to be implemented (this has to be done for each security provider) OR there should be configuration for the backend to hard-disable potentially harmful endpoints and make this the default for new users.
This supersedes #590
Additional info
No response
Please tick the boxes

[X] You are using a supported version of Dashy (check the first two digits of the version number)
[X] You've checked that this issue hasn't already been raised
[X] You've checked the docs and troubleshooting guide
[X] You agree to the code of conduct

Any updates on this? I was really hyped to put Dashy on a server but if there are such security implications, I'd rather not have it on an internet facing server with private stuff in it :(

Will be completed (hopefully) in 2.1.2, along with a re-write of how config is loaded and managed. For details, see #799

I think this is a more serious issue than it is being given credit for. I discovered the problem independently before finding this issue and wrote up a blog post with my thoughts, but the gist is that passing all the API keys for widgets to unauthenticated users is a huge security issue, and allowing unauthenticated config modification opens users up to DoS and phishing attacks.

Here the discussion post made by lissy:
https://github.com/Lissy93/dashy/discussions/1469

I think this is a more serious issue than it is being given credit for. I discovered the problem independently before finding this issue and wrote up a blog post with my thoughts, but the gist is that passing all the API keys for widgets to unauthenticated users is a huge security issue, and allowing unauthenticated config modification opens users up to DoS and phishing attacks.

Most notably is not the problem that this is a very serious problem, but the constant downplay of this issue. The documentation is very pretty and eases the user into the false sense of security that the authentication system does anything on the backend. As recent as the above linked post suggests that the keycloak implementation will be better, but that is also frontend only.
After two years I think that anyone can decide how strong the focus on privacy is in this project.

Hi @skornel02
I'm sorry, I haven't meant to ease anyone into a false sense of security.
The current feature is not meant to be anything more than a login page, and since auth is critical to get right, I have deprecated Dashy's built-in authentication.
My recommendation would be, if you are hosting Dashy anywhere other than within your local network, you should be protecting it with a reverse proxy and an authentication provider of your choice. And once you've finished configuring it, set the config file to read-only.

Hey @voidfire @skornel02
I hear you, and you're right. Mistakes were made (on my part), but I want to assure you that I'm doing everything I can to make them right again.
The above issue should now be fixed, documentation updates, and I've done a full write up in #1579


ERROR:    Exception in ASGI application  websockets

langflow

[22:33:35] INFO     [22:33:35] - INFO - Logger set up with log level: 20(info)                                         logger.py:28
INFO     [22:33:35] - INFO - Log file: logs/langflow.log                                                    logger.py:30
INFO:     Started server process [97396]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://<IP_ADDRESS>:7860 (Press CTRL+C to quit)
ERROR:    Exception in ASGI application
Traceback (most recent call last):
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/uvicorn/protocols/websockets/websockets_impl.py", line 238, in run_asgi
result = await self.app(self.scope, self.asgi_receive, self.asgi_send)
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/uvicorn/middleware/proxy_headers.py", line 78, in call
return await self.app(scope, receive, send)
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/fastapi/applications.py", line 271, in call
await super().call(scope, receive, send)
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/starlette/applications.py", line 118, in call
await self.middleware_stack(scope, receive, send)
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/starlette/middleware/errors.py", line 149, in call
await self.app(scope, receive, send)
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/starlette/middleware/cors.py", line 76, in call
await self.app(scope, receive, send)
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/starlette/middleware/exceptions.py", line 79, in call
raise exc
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/starlette/middleware/exceptions.py", line 68, in call
await self.app(scope, receive, sender)
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in call
raise e
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in call
await self.app(scope, receive, send)
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/starlette/routing.py", line 706, in call
await route.handle(scope, receive, send)
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/starlette/routing.py", line 443, in handle
await self.app(scope, receive, send)
File "/Users/ruihai/Library/Python/3.9/lib/python/site-packages/starlette/staticfiles.py", line 96, in call
assert scope["type"] == "http"
AssertionError

same issue

Hi,
There's not much context to what happened. Could you follow the Bug template, please?

Hi, There's not much context to what happened. Could you follow the Bug template, please?

I installed it locally, and after the installation is completed, I started it using the command and reported the error above.I asked my friends and they also made the same mistake
langflow


Fix hot reload with single service

This fixes a few things:

fast exit (not waiting 10s)
watch gets disabled after the first change
support running a single service with platformatic runtime start

@cjihrig PTAL. I've decided to disable those tests in CI :(. I don't have any more time to dedicate to this wild goose chase. Lmk if you have any ideas.


Create and wire up input for house rules

As house rules are added to the game, the user needs to be able to configure these as desired.

Fixed as of #186


Add conditional handling of ipv6 support on the OS.

I ran into an issue where a Ubuntu 20.04 system did not have ipv6 support, or it was not enabled.
Either way: it wasn't showing up under /proc.
This leads to an issue where if you add these settings via sysctl, every time after that you use sysctl for something, or run an ansible playbook that does something with sysctl, you get an error.
Particularly, that the it cannot stat a location similar to /proc/.../ipv6/...
This PR adds conditional checking if the required directory exists and if it doesn't, omits setting ipv6 settings.
The approach is to put ipv4, ipv6 and other systctl setting in their own dict, and combining those based on ipv6 being available under /proc or not.

Thanks! I'll run some tests and merge if okay.

If ready to merge, I'd suggest a squash merge, as the commits have stacked up, and they can be squashed into 1 for the purposes of the merge.

Thanks @KoenDG!


Taylor/more versioned and union test

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


More details

Briefly describe, with examples, how we can use solutions to customize commands and move them from one environment to another.

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

ID: 23305f64-b1e0-b0b8-9198-a509c1507474
Version Independent ID: 3b67f692-29f8-ab4d-2a56-71528ed96755
Content: Manage commands in solutions - Power Apps
Content Source: powerapps-docs/maker/model-driven-apps/manage-commands-in-solutions.md
Service: powerapps
Sub-service: mda-maker
GitHub Login: @caburk
Microsoft Alias: caburk

Thanks for your comment, @AbdulWahabWarind. This issue has been assigned to the doc author for review.


[frontend] standardize the structure of update forms

Based on #505

add missing action buttons and sort them in order of: Update, Reset, Delete
track field changes and enable/disable action buttons (Update and Reset buttons are enabled when form has changes and mutation is not in progress, disabled otherwise)
fix: do not reset form on first render

First render, Update and Reset buttons are disabled.

Form has changes, buttons are active

Update request in progress

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 0.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
0

Relevant Lines:
0

💛  - Coveralls


Updates to GUI capability for config and birdseye

(from https://github.com/meadej/gamutRF/tree/main)

the code references a file static/main.js but i don't see it included in the commits?


Using Python to interact with operating systems.

I am badly stuck at week one. I cannot do the health checks part. I am stuck. I tried but nothing works. Can you please please help me?
I need help very badly.

still r u stuck?

No
On Fri, 17 Jul 2020, 18:42 jjnanthakumar1096<EMAIL_ADDRESS>wrote:

still r u stuck?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jeremymaya/google-it-automation-with-python/issues/98#issuecomment-660099343,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIKSWSW2ZWW64UALUK2GXI3R4BE43ANCNFSM4OMC55OQ
.

ok but i have some confusion in week 3 Advanced Regular Expression (practice quiz) can u solve it?

still r u stuck?

Yes I am.

No
On Fri, 17 Jul 2020, 18:42 jjnanthakumar1096<EMAIL_ADDRESS>wrote:

still r u stuck?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jeremymaya/google-it-automation-with-python/issues/98#issuecomment-660099343,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIKSWSW2ZWW64UALUK2GXI3R4BE43ANCNFSM4OMC55OQ
.

Who are you?

No
On Fri, 17 Jul 2020, 18:42 jjnanthakumar1096<EMAIL_ADDRESS>wrote:

still r u stuck?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#98 (comment),
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AIKSWSW2ZWW64UALUK2GXI3R4BE43ANCNFSM4OMC55OQ
.

Who are you?

iam programmer like you(still iam doing this course)

tell me wats ur problem in week 1?


New release with license

It would be great to have a new release with the LICENSE file and the license information in the package.json.
Thanks!

Seconded. We’re using davglass’s license-checker in preparation for un upcoming distribution. It’s flagging ansi!

Published as v0.3.1. Sorry for the delay!

Awesome, thanks!

Thank you very much @TooTallNate!