Extracting cross-references from ontology and saving to a tsv

What command can I use to extract the value for xref tags from terms and save the results to a tsv? The tsv would preferably contain the following columns: term_id, term_name, xref. More generally, I am interested in extracting tag-value pairs from ontologies using owltools.

Hello,
currently there is no general purpose command-line command to create a TSV (for xrefs or other OBO tags).
For the GeneOntology, we use the --external-mappings-files (CommandRunner#createExternalMappings is the underlying implementation) to generate TSV like files for a specific subsets of xrefs. But that command is quite specific for the GO use-case.
Under the hood the method makes use of the OWLGraphWrapper and its wrapper methods to access the appropriate OWL equivalent for an OBO-Format tag (such as xref).
There are two potential approaches:

Write your own (generic?) method to dump out TSVs. (Use the existing code as example)
OBO format (instead of the OWL-API) to extract the values.
See org.obolibrary.oboformat.parser.OBOFormatParser and  org.obolibrary.oboformat.model.OBODoc are a good start iwhen dealing with plain OBO.

OBODoc is really intended only as an intermediate model on the way to OWL; there's no official support for using it as an API in its own right. But others have done this happily.
You could also do this via a SPARQL query
prefix oio: <http://www.geneontology.org/formats/oboInOwl#>
prefix owl: <http://www.w3.org/2002/07/owl#>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?x ?l ?y WHERE {
  ?x a owl:Class ;
     rdfs:label ?l ;
     oio:hasDbXref ?y
}

Many ontologies have a sparql folder for these kinds of queries
https://github.com/obophenotype/uberon/tree/master/sparql

I've tried the SPARQL method without much luck. See the notebook here.
I changed http://www.geneontology.org/formats/oboInOwl# to ftp://ftp.geneontology.org/go/www/formats/oboInOwl# because the former was broken.
I didn't know what url to use for a SPARQL endpoint or whether I needed to create my own. I unsuccessfully tried the endpoint (http://sparql.hegroup.org/sparql) mentioned on Uberon's wikipedia page. Can this SPARQL method read directly from an owl file?

Yes, I typically use arq which I think is pre-bundled with apache jena. A modicum more effort upfront, but makes everything easier downstream. You can just run it directly, no need to set up a database server or anything like that (no idea if you can get it to run in an ipython notebook, I'll find out about native python options as that might be nicer)
In theory the hegroup one should work, but sorry I mislead the query will need tweaked, the hegroup sparql has a ton of other ontologies so it will need to be restricted to the specified named graph.
(Changing the URL shouldn't be necessary and in fact may break things - a SPARQL processor will not try and resolve these, they are just names that happen to be URLs)


Create new error message component

Simple ErrorMessage component to display error messages.
Issue #81
Verification

[ ] Your code builds clean without any errors or warnings
[ ] Manual testing done (required)
[ ] Relevant automated test added (if you find this hard, leave it and we'll help out)
[ ] All tests run green

Documentation

[ ] User documentation is updated with a separate linked PR in altinn-studio-docs. (if applicable)

Codecov Report

Merging #90 (01ad2a3) into main (a75935e) will decrease coverage by 0.88%.
The diff coverage is 93.33%.

@@            Coverage Diff             @@
##             main      #90      +/-   ##
==========================================
- Coverage   97.74%   96.86%   -0.89%
==========================================
  Files          15       20       +5
  Lines         222      287      +65
  Branches       58       72      +14
==========================================
+ Hits          217      278      +61
- Misses          5        9       +4

Impacted Files
Coverage Δ

src/components/Accordion/Context.ts
85.71% <ø> (ø)

src/components/Button/Button.tsx
100.00% <ø> (ø)

src/components/Panel/Panel.tsx
100.00% <ø> (ø)

src/components/TextField/TextField.tsx
100.00% <ø> (ø)

src/components/List/Context.ts
90.00% <90.00%> (ø)

src/components/Map/Map.tsx
91.17% <91.17%> (ø)

src/components/ErrorMessage/ErrorMessage.tsx
100.00% <100.00%> (ø)

src/components/List/List.tsx
100.00% <100.00%> (ø)

src/components/List/ListItem.tsx
100.00% <100.00%> (ø)

... and 1 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Removed no-shuffle tag and fixed leak in debug_test.dart

Fixes test/gestures/debug_test.dart of #85160
Problem
The TapGestureRecognizer in the test named 'TapGestureRecognizer _sentTapDown toString' was not disposed, which was breaking a couple of other tests.
This worked fine when not shuffling the tests as the test was executed last.
Fix
Dispose the TapGestureRecognizer
Pre-launch Checklist

[x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
[x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
[x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
[x] I signed the [CLA].
[x] I listed at least one issue that this PR fixes in the description above.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making or feature I am adding, or Hixie said the PR is test-exempt.
[x] All existing and new tests are passing.

@googlebot I consent.


flutter cache populate shows large backtrace when run offline

I ran flutter start when I was offline.
Not surprising it fails.  Just that it's an ugly failure.  Very non-critical.
Downloading darwin-x64 artifacts from the cloud, one moment please...
Downloading android-arm artifacts from the cloud, one moment please...
Downloading https://storage.googleapis.com/mojo_infra/flutter/b847a505177113f39056ddc516090273be958aff/darwin-x64/artifacts.zip.
Downloading https://storage.googleapis.com/mojo_infra/flutter/b847a505177113f39056ddc516090273be958aff/android-arm/artifacts.zip.

This should either tell you the network is bad, or retry. Or both.

I guess this is a new user experience crash, or would be if anyone ran this command, but since this is an esoteric command, probably not something we'll get to in the coming months.

"flutter start" is no longer a subcommand in the flutter tool.


esp_wifi_set_country shows "wifi:External AP's channel is out of channel range, disconnect" (IDFGH-3045)

Module or chip used: ESP32-WROOM-32
IDF version: v4.2-dev-1034-ge599b794bebe
Build System: CMake
Compiler version: xtensa-esp32-elf-gcc (crosstool-NG esp-2020r1) 8.2.0
Operating System: Linux
Power Supply: USB
First, I call esp_wifi_get_country and found the module's default country code is CN:
cc=CN, schan=1, nchan=13, policy=0
Then I call esp_wifi_set_country to change the country code to US, but got below warning:
I (10745) wifi:set country: cc=US schan=1 nchan=11 policy=0
W (10752) wifi:External AP's channel is out of channel range, disconnect
The expected behavior: It should work without any warnings.
The warning is not useful to me since it does not tell why AP's channel is out of channel range.
The warning is also quite strange because in my test code I got the warning before
calling esp_wifi_set_mode/esp_wifi_set_config/esp_wifi_start.

@AxelLin
If the ESP32 is in channel 12 or 13 before you call esp_wifi_set_country to change the country to [1,11,US], this log will be printed.
Anyway, this warning may look strange to users, we will modify it or just delete it.

@zhangyanjiaoesp
But the point is wifi is not initialized yet.
I call esp_wifi_set_country first and got the message.
esp_wifi_set_mode/esp_wifi_set_config/esp_wifi_start are not yet called.
So I even don't know which channel was used when I call esp_wifi_set_country.
(And I don't think it's default is 12 or 13, something might be just wrong.)

@AxelLin

First, I call esp_wifi_get_country and found the module's default country code is CN:
cc=CN,schan=1, nchan=13, policy=0 This means theesp_wifi_init()` has been called.

Which mode does your ESP32 in?
Please show me how you call the APIs. Like a demo how to reproduce your problem.

@zhangyanjiaoesp
I tested on ESP32-WROOM-32, Chip is ESP32D0WDQ6 (revision 1).
You can use examples/wifi/getting_started/softAP to reproduce this issue.
Attached diff of my modification and see the comments which shows my debug print output.
To reproduce the issue:

idf.py erase_flash
idf.py flash monitor

PS. The warning does not show up at the second time reboot.
So make sure you do erase_flash first to see the symptom.
softAP-example-diff.txt

@AxelLin
Before calling esp_wifi_start(), the channel of ESP32 is 0, in this time you call esp_wifi_set_country to set channel range to [1,11], 0 is out of range, so the warning is printed.
Suggest you set country after esp_wifi_start() has been called.

@zhangyanjiaoesp
I'm surprised to call esp_wifi_start() before esp_wifi_set_country(),
it looks like a possibility of using wrong country code before applying new setting.
BTW, I don't find where the ESP-IDF set the default country code to CN.
It would be even better if I can override the default rather than calling esp_wifi_set_country again in my application code.
And from the fact I only see the warning for the first time boot, I'm wondering if the device saved the country code setting in NVS?

@AxelLin
Yes, when esp_wifi_init() is called, the device will get default country [1,13, CN] in NVS load.

@zhangyanjiaoesp
In wifi_init_config_t I only found nvs_enable flag set to WIFI_NVS_ENABLED.
I don't find where to change the default country code setting.
Could you provide an example to init different count code without calling esp_wifi_set_country()?

@AxelLin We don't support this now. You need to call esp_wifi_set_country to set different country.

@zhangyanjiaoesp
I'm not convinced calling esp_wifi_set_country() after esp_wifi_start() is correct.
So I'm considering to keep my code as is, call esp_wifi_set_country() before
esp_wifi_start() and just ignored the warning.
Thanks for your prompt support.

ok, thanks. We will update the warning log.


Fix issue with changes to links in anthology.bib

split_bib.py
Previous version relied on splitting anthology.bib at a specific bibtex entry and broke due to changes in how links were presented in the anthology. New version extracts individual bib entries, adds them individually to a new bib file up to a file size limit of 45mb and then creates new files programmatically after the 45mb limit is reached. Outputs are written to a folder called anthology_YYMMDD and written out to a zip file called anthology_bib-YYMMDD.zip.

Thanks @spencer-michael-s. This is a fantastic contribution :fire: , I will try to review and merge it ASAP.


fix: Updated statusbar+notification-center+notification-pop-up to hav…

Moved the status-bar, notifications and notification center a bit down.
This might create a gap between the visible part of the header and the top of the notification center panel.

Codecov Report

Merging #81 (af3641d) into mirror/release37 (c282854) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head af3641d differs from pull request most recent head 7541fe6. Consider uploading reports for the commit 7541fe6 to get more accurate results

@@                Coverage Diff                @@
##           mirror/release37      #81   +/-   ##
=================================================
  Coverage             66.84%   66.84%
=================================================
  Files                   261      261
  Lines                 18300    18300
  Branches               3944     3944
=================================================
  Hits                  12232    12232
  Misses                 6031     6031
  Partials                 37       37

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 c282854...7541fe6. Read the comment docs.

Works for me


Resolve get subjects issue

This PR is to resolve the issue #33 and is in accordance with the guidelines specified in #42
Some major changes are as follows-

A new endpoint has been added for getting information of subjects and projects from the Management Portal.
A client added for interacting with the Management Portal.
Added additional model and utility java classes for handling data requests and response from the Management Portal.
Added oauth-client-util library for authentication with the Management Portal.
Management Portal config loaded from a file called mp_info.yml
Updated the build-utility.gradle file to include mp_info.yml in integration and end-to-end tests.

The following endpoints are active-

/api/mp/subjects  Get all subjects
/api/mp/subjects/{id} Get subject by id
/api/mp/projects/{id}/subjects Get subject from a project
/api/mp/projects/{id} Get project by id

The following have been implemented but do not provided intended results because of this issue of MP issue 18. Once this issue is resolved, this should work.

/api/mp/projects Get all projects

A separate endpoint (/mp) has been created for exposing data retrieved from the MP for now. This can later be merged into (/api)
Here {id} of subject in Rest-API = {login} of subject in MP
All of this data is retrieved from the MP and handled and exposed through REST-API.

@dennyverbeeck I understand what you are saying but the data fetched from MP needs to be formatted in Rest API to make it consistent. For example, the login in MP is subjectId in Rest API. Also the data fetched from MP is just of the subjects. This information will be used by the REST API to query the MongoDb for more results using the subject data received from MP. This is just to get subject information from MP so that the Rest API does not use the find() query on MongoDb as it is not performant.
The requirement here is not to just output the data from MP endpoint. We also want to process it and for other purposes. What do you think?

Aha ok, there were always discussions about 'forwarding requests to MP', i did not know there were requirements to translate some of the properties as well. Ok never mind then :smile: Btw, not sure if you know about it but, all the way at the bottom of the Readme for MP there is a small section on generating a complete client for MP automatically. Sorry if you didn't know about it, i didn't realize it. But it can be useful moving forward!

@dennyverbeeck I saw the client after someone mentioned it in a meeting, but by then I had already implemented this. We can look into it when we need more functionality but for now I think this PR should suffice. Thanks for the feedback. The client seems really helpful 👍

@blootsvoets if you have a spare moment could you please review this one.


composekey: Fix serialization in localStorage

composekey tries to store keepModifier as a boolean in localStorage, an interface that only supports strings. The result is that the keepModifier setting ends up always enabled after a reboot.

Thanks!


Exception is thrown from ParseClient.Initialize

I tried compiling latest code for Unity4. Exception is thrown from ParseClient.Initialize:
"Cannot register a type that does not implement the default constructor!"
It happens in ObjectSubclassingController.cs:94, because it executes this line:
RegisterSubclass(typeof(ParseObject));
Problem is that ParseObject doesn't have public default constructor, thus RegisterSubclass method throws an exception.
Is there a way to make this code work?

@richardjrossiii this still doesn't - I still get the same error. Have you tried it yourself?
My understanding is that ReflectionHelpers.FindConstructor tries to call extension method GetConstructors, but it doesn't call extension method ReflectionHelpers.GetConstructors, but calls instance method Type.GetConstructors instead, because:

An extension method will never be called if it has the same signature as a method defined in the type. (from MSDN)

And Type.GetConstructors defaults to Type.GetConstructors(BindingFlags.Public | BindingFlags.Instance).
Am I missing something?

@PauliusLiekis The issue has been fixed, although if you don't build it yourself you won't see the fix yet. We'll need to release a new version of the SDK to do that, which will be forthcoming soonish.

@richardjrossiii I'm building myself, so yeah I have everything latest. Maybe the problem is that I'm using MonoDevelop to compile it, but as I said it looks like GetConstructors extension function indeed shouldn't get called according to MSDN specification of extension functions.


get_node() doesn't see node properties

Tested versions
Happens in all versions of Godot 4+, but does not happen in Godot 3.5.3+
System information
Godot v4.3.dev6 - Windows 10.0.19045 - Vulkan (Forward+) - dedicated Radeon RX 560 Series (Advanced Micro Devices, Inc.; 31.0.14001.45012) - Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz (4 Threads)
Issue description
Previously, when writing code in Godot 3.5.3, I always used code like this:
get_node("AnimationPlayer").play("anim")
Now get_node does not see the functions and parameters of the node specified in the argument, but the $AnimationPlayer method does see the node parameters.
https://github.com/godotengine/godot/assets/130399274/1d8a90d0-37f4-49fb-986f-3fa47a7d98da
Steps to reproduce
write get_node in the code, specifying any child node as an argument, and try to find the functions of this node in the tooltips
Minimal reproduction project (MRP)
N/A

Thank you for reporting, consolidating in:

https://github.com/godotengine/godot/issues/86172

See there for more details, if you think something was missed about this and it's not the same issue, please comment here and it can be reopened


Add automation to check for un-labelled resources

Problem: As we were working on a Jump Start Solution, we realized that we forgot to label the resources using the "labels" variable.
See this Google-internal doc. This document states that all Blueprint resources should set the "labels" argument (where applicable) to "var.labels".
Ideally, we would either:

have automation that adds these labels in any Terraform resource that supports the "label" argument.
have automation that warns developers that Terraform resource that

Feature request: Would it be possible to add a check inside the lint GitHub Action that warns users about unlabelled resources (for resources that support the "labels" arg)?

Additional info

This is a nice-to-have. Feel free to close. :)
Here's the issue where we realized that we forgot to label resources: https://github.com/GoogleCloudPlatform/terraform-genai-knowledge-base/issues/94.

Thanks for the suggestion @NimJay! This is definitely something on our radar - a potential implementation path is via tflint https://github.com/GoogleCloudPlatform/cloud-foundation-toolkit/issues/1453


Separate Author and Comment info in Post Info

Perhaps a period or a vertical bar

Maybe I can take this one?

@obax that would be great 👍
This is a little trickier than I originally thought, I've copied my comment from PR 164 below about how I think it would ideally work regarding hiding the pipe (|) when comments are disabled (unless you're logged-in and have the ability to edit the post).
I'd love to hear your thoughts (or PR).
What does the Genesis Sample Theme do?
I like how the Genesis Sample Theme handles this.
Logged In and Disabled Comments

Logged Out and Disabled Comments

Logged In and Enabled Comments

Logged Out and Enabled Comments

It may be worth looking at how they set it up in the Genesis Sample Theme.


IOS map array not working but working fine on android

Hi @januslo  I use you library code works fine on android and ios but in ios when I try to execute a column of array data using map function it through thread error in xcode my code is here
    await getorderDetails?.items?.map((val) => {
      BluetoothEscposPrinter.printColumn(
        columnWidths,
        [
          BluetoothEscposPrinter.ALIGN.LEFT,
          BluetoothEscposPrinter.ALIGN.CENTER,
          BluetoothEscposPrinter.ALIGN.CENTER,
        ],
        [
          `${val.itemName}`,
          `${val.quantity}`,
          `$${parseFloat(val.totalPrice).toFixed(2)} `,
        ],
        {}
      );
    });

and please do let me know how can we map array data in you library

@Frankiz123 also had same issue in ios. If your issue is still active, try using .toString() in map function for your values.


[#197] Change source url

close #197

Description

I changed reference of css file url.
I changed repository url

Compatibility

not include breaking
Caveats

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


HBASE-27097 SimpleRpcServer is broken

Replace BufferChain#write(channel,int) with a simpler #write(channel) implementation that does not attempt to "chunk" data to be written. This method was used exclusively by SimpleRpcServer. The code was unnecessarily complex and caused short writes when values were large, which were exposed by MAC verification failures when SASL is enabled, so was corrected and simplified. Any difference in performance from this change will be limited to SimpleRpcServer. Testing under load confirms the fix and does not show significant regression.
SimpleRpcServer and its related code is now also marked as @Deprecated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 38s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ master Compile Tests _

+1 :green_heart:
mvninstall
2m 33s
master passed

+1 :green_heart:
compile
2m 12s
master passed

+1 :green_heart:
checkstyle
0m 30s
master passed

+1 :green_heart:
spotless
0m 41s
branch has no errors when running spotless:check.

+1 :green_heart:
spotbugs
1m 14s
master passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
2m 10s
the patch passed

+1 :green_heart:
compile
2m 11s
the patch passed

+1 :green_heart:
javac
2m 11s
the patch passed

-0 :warning:
checkstyle
0m 28s
hbase-server: The patch generated 4 new + 6 unchanged - 1 fixed = 10 total (was 7)

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
11m 57s
Patch does not cause any errors with Hadoop 3.1.2 3.2.2 3.3.1.

+1 :green_heart:
spotless
0m 40s
patch has no errors when running spotless:check.

+1 :green_heart:
spotbugs
1m 18s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m  9s
The patch does not generate ASF License warnings.

32m 13s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4613/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/4613

Optional Tests
dupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile

uname
Linux d1e0fb7f1319 5.4.0-1071-aws #76~18.04.1-Ubuntu SMP Mon Mar 28 17:49:57 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
master / f3545cd73a

Default Java
AdoptOpenJDK-1.8.0_282-b08

checkstyle
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4613/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt

Max. process+thread count
64 (vs. ulimit of 30000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-4613/1/console

versions
git=2.17.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

We have some noise in recent precommit results.


presenterm: 0.6.1 -> 0.7.0

Description of changes
Changelog: https://github.com/mfontanini/presenterm/releases/tag/v0.7.0
cc @MikaelFangel

Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[x] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 292836 run on x86_64-linux 1

1 package built:

presenterm


Undefined model attributes should throw an exception instead of returning NULL.

Currently, trying to access $model_obj->nonexistant_attribute will simply return NULL. I think that a model, after exhausting all possible attribute lookups and relationships in getAttribute(), should throw an exception. I have been caught several times trying to debug unexpected behavior related to trying to access attributes that did not exist. This could happen for something as simple as a typo. PHP does not have an undefined value like JavaScript, and NULL should not be used since legitimate values can be set as NULL for reasons other than being undefined.

Undefined model attributes should throw an exception instead of returning NULL.

Sorry, no they shouldn't.

If you are defending that implementation, that is fine. But, how can I use the framework to the differentiate between a NULL value and an attribute that doesn't exist? I can't find a method like hasAttribute() on the model, and $attributes is protected for me to run array_key_exists() myself.


Automated Package Upgrade

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Remove redundant travis exclusion

We don't test on pypy, so it's pointless to exclude a certain pypy build explicitly.

Thanks!


Remove mention of community-driven and mention feature PRs may not be accepted

This brings the README in line with Godot's actual policy as stated by @reduz.
Citation for removing community-driven: https://twitter.com/reduzio/status/1376855473283010562
Citation for 1st added sentence: https://twitter.com/reduzio/status/1376749654495399944
Citation for 2nd added sentence: https://twitter.com/reduzio/status/1376745492713967616
Most of the words in this PR are quoting @reduz verbatim with his clarifications of the policy on Twitter.
The README should reflect Godot's policy, not go against it. Doing otherwise is confusing for contributors. Stating Godot is community-driven is misleading at best, so it shouldn't be in the README. Most people will read "community" as "the whole community of users and developers", not "the community of core developers".

To repeat what I said in private message. I believe that removing "community-driven" is not a good thing. The term might be clarified though (either here or in the docs), to explain in a clearer manner how decisions are taken. In general it describes the whole idea of Godot being a project where people come and go, and that there's not a set of fixed deciders how choose everything about the project.
Also, the paragraph added is needlessly scary for new contributors, and sounds more like a rant than something describing our workflow. Also, I don't think such statement belong to the README.md file.

In general it describes the whole idea of Godot being a project where people come and go, and that there's not a set of fixed deciders who choose everything about the project.

The problem is that this is not what most people read when they see the word "community". People think "the whole community of users and developers", not "a somewhat fluid community of deciders who choose everything about the project".

@aaronfranke does have a point about most people interpreting "community" to mean "the whole community of users and developers", which is decidedly NOT what is happening when PRs are accepted.
That said I am at a loss on how to phrase it better... "core community"? "community of core devs"?

Discussions like this don't happen on a PR and never have. Opening a PR like is clearly in bad faith. I'm sorry you feel frustrated about the process but this is not the way for air your grievances.

@hpvb I really think your (re)action is too harsh (with locking conversation)
@aaronfranke please open a proposal to discuss this, because it's evident that we do have an issue regarding this topic.

To repeat what I said in private message. I believe that removing "community-driven" is not a good thing. The term might be clarified though (either here or in the docs), to explain in a clearer manner how decisions are taken.

I've created a PR with clarifications, see godotengine/godot-docs#4799, feel free to suggest changes and improvements (mostly interested in review from the lead developer, obviously, it shouldn't be just Twitter moments of truth). 🙂
hpvb, please don't just delete this post, I'm simply forwarding the suggestion into the right place, thanks for understanding.


Generator support changes incorrect

Describe the bug
from the original PR I submitted, the code looked like https://github.com/runpod/runpod-python/blob/f19342c33dff2ce15ff93f85f92ea80427fb614a/runpod/serverless/work_loop.py#L63-L71
and now is https://github.com/runpod/runpod-python/blob/main/runpod/serverless/work_loop.py#L66-L72
Logically, this is incorrect, as you can't test the handler function is a GeneratorType, you have to actually call the function, and only then can you determine if it is a GeneratorType from the result of the function call.
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots

Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

I'll add some tests to validate this, I recall that in the original PR I had to re-work it since it started to report all handlers as being generators.

@justinmerrell the linked PR #58 fixes this issue. It simply uses inspect so it doesn't have to execute the handler to determine if it's a generator.

Changes are now in the release


a bug that wont let you have space between the sentence

I could explain this bug with only one video, be I thought with these 2 boring videos you can understand the problem and hopefully fix it in near future, sorry for my English and the boringness in my videos :D
1
https://user-images.githubusercontent.com/101425664/173699840-bd3b56d8-9cf8-466b-93ce-67322f1e5d18.mp4
2
https://user-images.githubusercontent.com/101425664/173699619-3ad8e546-b148-42cd-a6d4-6137cd7d4c2b.mp4

Thanks, I think I know where the issue is. As you pointed out, it's likely a problem with the custom fields. Really good find.

26e56a1d3aab24be20f4ec5bc54565ab16790e35

The website has been updated with this fix.
The next extension release will include this fix.


Image Preview Tab

Add Tab for image preview that the user can load an image in for inspiration.
Note: Is this really necessary? I mean who doesn't have two screens and works on art?

Might be much better to be able to "set an image as background" and make that toggle-able.


Replaced external file writes with call to standard function

Resolves #3 . Please test and request review from @andy123, who may have a cleaner way to manage this.

@alanisem123 do you want to merge this in?


Example/token translation

Description
The scope of the changes in this Pull Request are to add core scripts, along with the ability to automatically update tokens based on the latest design articles. This is currently only inclusive of core/color/decorative and core/color/functional color tokens, but is expandable to include other automation tokens based on what is readily available.

I would love to write typescript going further!

I would love to write everything in typescript going further!

I strongly agree! Since the project didn't include any TS/TSC at the time of writing this within it's time-box, the call was made to introduce this in native CommonJS to reduce implementation time. There is future work that we can execute on in regards to this, which will be migrating this to TS once the automation triggers are ready.


Questions of the future development

Your paper is really useful. You mentioned the further decomposition in it.

However, two-level matrix can be decomposed into sequence of simpler gates, namely Ry, Rz and R1 gates acting on single qubit and CNOT

Would you please actually implement that? That would be a wonderful feature because that makes all the unitary matrices functional in QASM. Right now, your software is able to produce cirq circuits, which can be converted to QASM  with cirq.Circuit.to_qasm(), but it works only for two qubits.

Hi,
Thank you for yor request.
This library currently can build Cirq circuit for any unitary, however not any such cirquit can be converted to QASM by Cirq. Cirq currently can't convert controlled gate with more than one controls to QASM.
QASM itself is low-level and "multi-controlled gate" isn't part of its spec: https://github.com/Qiskit/openqasm/blob/master/spec/qasm2.rst#language
However, there is an algorithm which decomposes such multi-controlled gate into a sequence of 1-qubit gates, CNOT and CCNOTs: https://cirq.readthedocs.io/en/stable/generated/cirq.decompose_multi_controlled_rotation.html
You can try tthe following:

Call qd.matrix_to_cirq_circuit;
Iterate through gates in the result, and for all gates which have more than one control, apply cirq.decompose_multi_controlled_rotation
Apply cirq.Circuit.to_qasm() to the result.
This, however, will be suboptimal - it will generate more gates than it could.

I don't intend to continue developing and supporting this library, but if indeed there is no other available open-source Python library capable of converting arbitrary unitary to QASM, I will integrate my algorithm into Cirq, and then improve it so it supports all matrices.

Great. I didn't know decompose_multi_controlled_rotation existed.
Thanks.

It seems cirq.decompose_multi_controlled_rotation cannot be used to produce a QASM because it returns a list of cirq.Operation objects, which lack gate name and argument information. The cirq.Operation  does have the correct matrix information, of course. But, the matrix info cannot be directly used to produce a QASM.
Another open source project OpenQL  does have a decomposition module based on this paper.
But, your decomposition strategy is different. So, I do hope you use your algorithm to improve Cirq in the future.
Thanks.

@DevelopDaily Acknowledging that it's been a while since you posted this issue, I just opened a pull request which makes it possible to generate Qiskit circuits, which you can use to decompose multi-controlled gates for QASM.
# Random 3-qubit unitary matrix
U = stats.unitary_group.rvs(2 ** 3)

# Generate and decompose circuit
qc = matrix_to_qiskit_circuit(U).decompose()

# Add measurement gates
qc.measure_all()

# Compile QASM string
qasm_string = qc.qasm()

Great. Thanks.
Got the idea, though the previous != qc will crash. I guess you meant to do
while previous is None or previous != qc:
I didn't verify the correctness of the QASM output, and hope your test cases have covered that.

The QASM output is correct to the extent that Qiskit implemented it correctly, so there are a few caveats such as u3(...) instructions being named u(...), and u1(...) being named p(...). Overriding Qiskit's non-standard QASM spec is probably outside of this scope of this library, though.
That being said, here is a quick-and-dirty way to replace these non-standard gate names:
qasm_string = qc.qasm().replace('\nu(', '\nu3(').replace('\np(', '\nu1(')

Also, previous != qc works because the first iteration evaluates to None != qc, which is true.
Cheers! :)


CMake: Revise _ALWAYSLINK_LIBS_MLIR

Resolved the merge conflicts. Bazel should further pass as I rebased onto the master which includes the dep fixes.


[REVIEW] SRF README Update - In Preparation of Public Release

Adding anatomy of a SRF pipeline image
Adding instructions on how to install SRF
Clarifications / style updates

@ryanolson -- I think this is good to merge barring other comments/suggestions.

@gpucibot merge


Crash reporter shows up but Wasabi doesn't crash

This happened to me on master 347e560a0d5247b2b5896bfb62f730de9695e6d5:

I started Wasabi from the command line.
The crash reporter showed up.
Few seconds later the crash reporter got closed, and Wasabi started normally, and there is no error in the logs.

This is the error I copied from the crash reporter:
Exception type: Microsoft.Data.Sqlite.SqliteException

Message: SQLite Error 8: 'attempt to write a readonly database'.

Stack Trace:    at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
   at WalletWasabi.Stores.BlockFilterSqliteStorage.FromFile(String dataSource, FilterModel startingFilter) in WalletWasabi\Stores\BlockFilterSqliteStorage.cs:line 64
   at WalletWasabi.Stores.IndexStore.CreateBlockFilterSqliteStorage() in WalletWasabi\Stores\IndexStore.cs:line 49
   at WalletWasabi.Stores.IndexStore..ctor(String workFolderPath, Network network, SmartHeaderChain smartHeaderChain) in WalletWasabi\Stores\IndexStore.cs:line 42
   at WalletWasabi.Daemon.Global..ctor(String dataDir, String configFilePath, Config config) in WalletWasabi.Daemon\Global.cs:line 71
   at WalletWasabi.Daemon.WasabiApplication.CreateGlobal() in WalletWasabi.Daemon\WasabiApplication.cs:line 102
   at WalletWasabi.Daemon.WasabiApplication.BeforeStarting() in WalletWasabi.Daemon\WasabiApplication.cs:line 87
   at WalletWasabi.Daemon.WasabiApplication.RunAsync(Func`1 afterStarting) in WalletWasabi.Daemon\WasabiApplication.cs:line 69
   at WalletWasabi.Fluent.Desktop.WasabiAppExtensions.RunAsGuiAsync(WasabiApplication app) in WalletWasabi.Fluent.Desktop\Program.cs:line 151
   at WalletWasabi.Fluent.Desktop.Program.Main(String[] args) in WalletWasabi.Fluent.Desktop\Program.cs:line 62

Inner Exception:

What OS?
What permissions does the client/BitcoinStore/Main/IndexStore/ folder has and what permissions do the IndexStore.sqlite file does. what user is owning the file/folder? yours or root?

I'm on Windows 10, and both the folder and file have all permissions.
I think it is not a permissions problem.
Despite the crash reporter showing up everything worked well.


Improve experience when gcalcli is missing auth

Should give more user-friendly output about auth issues after fresh install (and probably when auth becomes expired/invalid, too).
If you just install gcalcli and invoke gcalcli list with no prior setup, it seems to point you straight to an authentication link that no longer works and says "App is blocked". This could be way less error-prone.
Also, it seems to require separate authentication for calm/calw vs. list, but doesn't seem to explain that anywhere obvious. That could be clarified and have the experience improved, too.

And also if you haven't used apps with similar auth setup before, it's not super obvious that (at least in Chrome) you need to proceed past the scare page by expanding an "Advanced options" thing and selecting "Proceed anyway". Could use hints about that.

Oh and related to the "and probably when auth becomes expired/invalid" part, people seem to get stuck needing to manually delete and force refresh authentication (example: https://github.com/insanum/gcalcli/issues/682#issuecomment-2147833620). Would be nice if gcalcli were more self-aware about those invalid auth cases and more helpful about what to do about it.

K, I think I got all of those different smells improved!

"it seems to point you straight to an authentication link that no longer works" -> removed in #707
"it's not super obvious that (at least in Chrome) you need to proceed past the scare page by expanding an 'Advanced options' thing" -> Also fixed in #707
"it seems to require separate authentication for calm/calw vs. list" -> can't repro and can't find any reason from the code it'd be like this, must've just gotten something mixed up
"people seem to get stuck needing to manually delete and force refresh authentication" -> improved in e459ca7, so if you just run gcalcli init, you'll be prompted for whether you want to manually refresh auth.


Phantom inline git-blame messages at the bottom of buffers

Description
I've just updated from v0.1.2 to v0.2.1 with a very minimal config, and noticed phantom inline git-blame messages at the bottom of buffers.
I believe I have it all disabled. This looks like a bug to me, please advise.
    require('vgit').setup({
      settings = {
        live_blame = { enabled = false },
        live_gutter = { enabled = false },
      }
    })

Opening a directory with nvimtree buffer:

Opening a file:

I only see the message when a buffer is in focus.

nvim --version output: NVIM v0.8.3
Operating system: macOs 13.2.1 (22D68)
vgit version: v0.2.1

Hey, this is actually a feature lol. It is showing you the author that committed the most lines in this file, more like a code owner of that file. You can disable it using the following:
require('vgit').setup({
    settings = {
        authorship_code_lens = { enabled = false },
    }
})

Thanks for the reply. I don't think it should be enabled by default, as it's very confusing.
Also it triggers on random buffers, not only on files.


Is listening to radio inputs intentional?

On DOMContentLoaded this plugin is triggering a change event for my radio inputs which do have a value attribute, but not because the server filled in a value like an input, but because.. they're radio inputs.
I have a feeling autofill doesn't ever automatically choose a radio so those could be excluded, yes? Happy to send a PR but want to ask about this first.

+1 same counts for check boxes.

Looks like a bug.


Requesting application user on merge requests

Is your feature request related to a problem? Please describe.
Running an application in a container (Docker) doesn't make it secure and most applications are running under the root user.
Describe the solution you'd like
Require the creation of a system user for each new applications added going forward. User could be member of the ansible-nas group in order to read/write into samba folders. If someone wants to run a certain app as root, he could still use UID/GID 0 in its inventory. Since breaking current implementations is not possible, I would apply it to new merge requests.
Describe alternatives you've considered
Specifying UID for each applications in inventories. This solution doesn't scale well in my opinion as someone would have to modify the tasks to create users.

I'm not entirely sold on this idea, being honest. It's a lot of extra admin for not a lot of gain, especially given that all users would be added to the same group, and therefore, have the same rights over your data.
I'd be interested to hear a little more about this, so I've created a discussion to track conversation: https://github.com/davestephens/ansible-nas/discussions/392


will add auto exposure time upper and lower limits, so we can acheive…

will add auto exposure time upper and lower limits, so we can acheive faster fps in auto exposure mode by limiting upper limit, removed old master_fps param

Mithun can you implement these changes and merge.  I think it will be useful for Jagat.


Approve/Decline contract request by NHS FE

After viewing details NHS signer admin must be able to approve / decline Contract Request.
Screen flow is next
get details - > approve/decline with status reason -> sign (sign json) - > return to detail page
link to design here (TBD)

[x]  implement according to logic approve/decline
[ ]  test

[ ] decline of Decline does not work

app.js?f8b67a54a4e353af4899:1 Uncaught TypeError: Cannot read property 'setState' of undefined
    at value (app.js?f8b67a54a4e353af4899:1)
    at Object.r (app.js?f8b67a54a4e353af4899:1)
    at o (app.js?f8b67a54a4e353af4899:1)
    at Object.s [as executeDispatchesInOrder] (app.js?f8b67a54a4e353af4899:1)
    at p (app.js?f8b67a54a4e353af4899:1)
    at m (app.js?f8b67a54a4e353af4899:1)
    at Array.forEach (<anonymous>)
    at r (app.js?f8b67a54a4e353af4899:1)
    at Object.processEventQueue (app.js?f8b67a54a4e353af4899:1)
    at r (app.js?f8b67a54a4e353af4899:1)
value @ app.js?f8b67a54a4e353af4899:1
r @ app.js?f8b67a54a4e353af4899:1
o @ app.js?f8b67a54a4e353af4899:1
s @ app.js?f8b67a54a4e353af4899:1
p @ app.js?f8b67a54a4e353af4899:1
m @ app.js?f8b67a54a4e353af4899:1
r @ app.js?f8b67a54a4e353af4899:1
processEventQueue @ app.js?f8b67a54a4e353af4899:1
r @ app.js?f8b67a54a4e353af4899:1
handleTopLevel @ app.js?f8b67a54a4e353af4899:1
i @ app.js?f8b67a54a4e353af4899:1
perform @ app.js?f8b67a54a4e353af4899:1
batchedUpdates @ app.js?f8b67a54a4e353af4899:1
i @ app.js?f8b67a54a4e353af4899:1
dispatchEvent @ app.js?f8b67a54a4e353af4899:1

@svetavedmed Ready for test

[ ] reload page after decline and approve
[ ] check nhs fields before "approve", in case one or more empty msg "Не всі поля заповнені. Заповніть будь-ласка поля"
[ ] fill update fields in case they are not empty


[BUG]

What is the bug?
team echest getting reset when a team logs off
Expected Behaviour
fix it idk
How to Reproduce
/team echest
Error message
na
Output of /teama version
na
Additional Information
When a team logs off with stuff in its echest the chest gets reset

This bug has been fixed and the patch will be included in the next update. Thank you for reporting.


[google_sign_in] Refresh token in GoogleSignInAuthentication

I'm writing API for my flutter app, where I register users by their's idToken. Now I want to sync events with Google Calendar using server, but I can't reach that, because I have only access_token. I need refresh_token too for endless access to Google Apis.

Hi @scamp96
This platform is not met for assistance on personal code.
Please see https://flutter.dev/community for resources for asking questions like this,
you may also get some help if you post it on Stack Overflow.
This package might be useful for you.
Closing, as this isn't an issue with Flutter itself,
if you disagree please write in the comments and I will reopen it
Thank you

Hey,
He is asking for getting refresh token after signing in using library. Because currently there is no refreshToken returned so we can't make a mechanism which exchanges refreshToken and generate new accessToken. Currently we need to make the user logout forcefully to generate new accessToken

Hi @Faiyyaz
I'm hijacking the issue as feature request
thank you for the explanation

I think it can mostly be done with new version I will try to make an example app and if everything works fine will share the code snippet here too.

The serverauthcode required here is still coming null. If it comes properly then everything else can be done by using google rest API
GoogleSignIn _googleSignIn = GoogleSignIn(
      scopes: [
        'email',
        kContactScope,
        kMailScope,
      ],
    );
    try {
      GoogleSignInAccount googleSignInAccount = await _googleSignIn.signIn();
      GoogleSignInAuthentication googleSignInAuthentication =
          await googleSignInAccount.authentication;
      String code = googleSignInAuthentication.serverAuthCode;

      GoogleProfileResponse googleProfileResponse = GoogleProfileResponse(
        id: googleSignInAccount.id,
        email: googleSignInAccount.email,
        name: googleSignInAccount.displayName,
        picture: googleSignInAccount.photoUrl,
      );

      print(code);

      //_getToken(code, googleProfileResponse);
    } catch (error) {
      print(error);
    }

Anyone manage to get refresh token? I am having issue getting refresh token as well and I need it for backend.

Any update on getting refresh token from the google signin?

Does the solution in this PR fix this issue as well? flutter/plugins#3356 (It is solving a similar problem – forcing Google Sign In to return a serverAuthCode that can be exchanged for a refresh token)

Any update on this issue? Still facing this in Android. There is no way to obtain a refresh token in GoogleSignIn which I find to be strange since it does everything else perfectly well. OAuth is an important part of the Google API Environment hence this really needs to be resolved.

I had tried it long back but the thing is they don't accept the PR & then the plugin was changed drastically so even I had to let it go in the end.

any updates?

Is there any update on this issue? Or any other solution ?

One can get refresh token manually

apiKey - your api key from firebase
idToken - unexpired id token
provider - 'google.com', 'apple.com' etc

`
final url = Uri.parse('https://identitytoolkit.googleapis.com/v1/accounts:signInWithIdp?key=$apiKey');
final response = await http.post(
  url,
  headers: {'Content-type': 'application/json'},
  body: jsonEncode({
    'postBody': 'id_token=$token&providerId=$provider',
    'requestUri': 'http://localhost',
    'returnIdpCredential': true,
    'returnSecureToken': true
  })
);
if (response.statusCode != 200) {
  throw 'Refresh token request failed: ${response.statusCode}';
}

final data = Map<String, dynamic>.of(jsonDecode(response.body));
if (data.containsKey('refreshToken')) {
   // here is your refresh token, store it in a secure way
} else {
  throw 'No refresh token in response';
}

`

@yupi Thanks this was quite helful :)

@yupi Can I use this on iOS? only on web?

@yupi Can I use this on iOS app? Or only on web?

The code is just http requests. You can use it almost anywhere.

@yupi when I try to update accessToken with this refreshToken (like in example) I get error:
request - https://oauth2.googleapis.com/token
{
"client_id": "...",
"client_secret": "....",
"refresh_token": "...",
"grant_type": "refresh_token"
}
response - {
"error": "invalid_grant",
"error_description": "Bad Request"
}
what I do wrong?

@yupi when I try to update accessToken with this refreshToken (like in example) I get error: request - https://oauth2.googleapis.com/token { "client_id": "...", "client_secret": "....", "refresh_token": "...", "grant_type": "refresh_token" } response - { "error": "invalid_grant", "error_description": "Bad Request" }
what I do wrong?

No idea sorry, we use firebase auth in our projects and
https://cloud.google.com/identity-platform/docs/use-rest-api#section-refresh-token
to get idToken for refreshToken. I guess idToken != accessToken.

No idea sorry, we use firebase auth in our projects and https://cloud.google.com/identity-platform/docs/use-rest-api#section-refresh-token to get idToken for refreshToken. I guess idToken != accessToken.

thx for answer, how you get accessToken for Google Api?

I don't use Google API just authenticate clients to backend with idToken which is refreshed if expired with the endpoint above.

Hey, sorry if this "off topic", but we couldn't succeed exhanging serverAuthCode neither - I would really appreciate if anyone would give a hint, how should we utilize this authCode on the backend side.
What we tried so far:
GoogleCloud side:
creating an OAuth web(!) client, so it has clientId and clientSecret; no redirectUri-s specified
on Flutter side:
GoogleSignIn(
    serverClientId: <the clientId of the OAuth web client from above>
    forceCodeForRefreshToken: true,
    scopes: [
      CalendarApi.calendarReadonlyScope,
      CalendarApi.calendarEventsReadonlyScope,
    ],
  );

on Postman/NodeJS side:
POST https://oauth2.googleapis.com/token
query params:
 * code=<serverAuthCode we got from GoogleSignIn>
 * client_id=<the same Google OAuth client id we use in GoogleSignIn>
 * client_secret=<corresponding client secret>
 * redirect_uri=<empty string>
 * grant_type=authorization_code

We always get the following response:
{
    "error": "unauthorized_client",
    "error_description": "Unauthorized"
}

What do we miss? :]

..for anyone interested, we figured it out:
Contrary to the GoogleSignIn documentation, we had to set the clientId and NOT the serverClientId..
so it looks like this now:

GoogleSignIn(
    **clientId**: <the clientId of the OAuth web client from above>
    forceCodeForRefreshToken: true,
    scopes: [
      CalendarApi.calendarReadonlyScope,
      CalendarApi.calendarEventsReadonlyScope,
    ],
  );

Hi,
I try to implement your solution above, but I keep having a serverAuthCode null.
Is there a way to display it ?
Thank you
``
   final googleSignIn = GoogleSignIn(
    clientId:
        ******,
    scopes: ['email', 'https://www.googleapis.com/auth/calendar'],
  );

  final googleUser = await googleSignIn.signIn();

  if (googleUser != null) {

    GoogleSignInAuthentication googleAuth = await googleUser.authentication;

    if (googleAuth.idToken != null) {

      final userCredential = await _firebaseAuth
          .signInWithCredential(GoogleAuthProvider.credential(
        idToken: googleAuth.idToken,
        accessToken: googleAuth.accessToken,
      ));

      print(googleSignIn.currentUser);
      //*** RESULT : ****
     // GoogleSignInAccount:{displayName: James Dupont, email<EMAIL_ADDRESS>id:<PHONE_NUMBER>37,
    //photoUrl: https://lh3.googleusercontent.com/a/xxxxxx, serverAuthCode: null}
      return userCredential.user;
    }`

Hi,
I try to implement your solution above, but I keep having a serverAuthCode null.
Is there a way to display it ?
Thank you
``
   final googleSignIn = GoogleSignIn(
    clientId:
        ******,
    scopes: ['email', 'https://www.googleapis.com/auth/calendar'],
  );

  final googleUser = await googleSignIn.signIn();

  if (googleUser != null) {

    GoogleSignInAuthentication googleAuth = await googleUser.authentication;

    if (googleAuth.idToken != null) {

      final userCredential = await _firebaseAuth
          .signInWithCredential(GoogleAuthProvider.credential(
        idToken: googleAuth.idToken,
        accessToken: googleAuth.accessToken,
      ));

      print(googleSignIn.currentUser);
      //*** RESULT : ****
     // GoogleSignInAccount:{displayName: James Dupont, email<EMAIL_ADDRESS>id:<PHONE_NUMBER>37,
    //photoUrl: https://lh3.googleusercontent.com/a/xxxxxx, serverAuthCode: null}
      return userCredential.user;
    }`

Hi, have you found a solution to this problem?

Hi guys,
i think you miss the following parameter from GoogleSignIn:

forceCodeForRefreshToken: true
?

@fbcouch has activated the GODMODE with that 'forceCodeForRefreshToken' attribute, in case you don't know.
Take that serverAuthCode and make a request to https://accounts.google.com/o/oauth2/token with next body
'access_type': 'offline',         tokenType: <serverAuthCode>,         'grant_type': 'code',         'client_secret': <yourClientSecret>,         'client_id': <yourClientId>,         'redirect_uri': <yourMiddleWare>,
You'll get the refresh_token that you need.

I have created android oAuth client in GCP but in flutter I'm getting idToken and serverAuthcode null everytime. I'm using google_sign_in: ^6.1.0
anyone had any way to solve this with flutter google signin

Just wanted to comment here but I would really like this feature as well. Right now using the current google_sign_in package I'm not able to get a refresh_token which makes it impossible for me to make api calls on behalf of the user after the 1 hour expiration.

Hi altogether, could it be that the presented flow using forceCodeForRefreshToken and clientId is not working with Flutter Web? For me the serverAuthCode kept being null.
When using serverClientId instead an exception was thrown. And since the package authors of googleapis_auth say that their lib should not be used with Flutter anymore, there is currently no way of realizing backend-side-access through a Flutter web frontend. Or am I missing something?

I can confirm that we are now facing completely the same issue.
Our main issue is to keep the user logged in and let him use GoogleApi. For this, we need the RefreshToken, but so far I found no way to actually obtain it using official libraries. It looks almost impossible to me on the Web right now.

@HE-LU have a look at this issue #62474 to see if my PR and comments might help (I'm using this approach in Flutter web in production currently)

@HE-LU have a look at this issue #62474 to see if my PR and comments might help (I'm using this approach in Flutter web in production currently)

Thank you. I was able to obtain the ServerAuthCode this way. I believe, this is the same code I was able to obtain using requestAuthorizationCode method from "https://pub.dev/packages/googleapis_auth" lib.
The thing is, that our Web app actually does not have any BE. I probably missed the part in your link where I can exchange the code for AccessToken and RefreshToken. Is that possible to do this using the code once and throwing it away? Am I missing something?

I’ve not looked into doing the exchange direct from the client. My instinct is that you’d not want to put the needed credentials in the client. My app uses a Firebase function for the exchange (protected with AppCheck).

On 19 Mar 2024, at 13:43, Lukas Hermann @.***> wrote:
@HE-LU https://github.com/HE-LU have a look at this issue #62474 https://github.com/flutter/flutter/issues/62474 to see if my PR and comments might help (I'm using this approach in Flutter web in production currently)
Thank you. I was able to obtain the ServerAuthCode this way. I believe, this is the same code I was able to obtain using requestAuthorizationCode method from "https://pub.dev/packages/googleapis_auth" lib.
The thing is, that our Web app actually does not have any BE. I probably missed the part in your link where I can exchange the code for AccessToken and RefreshToken. Is that possible to do this using the code once and throwing it away? Am I missing something?
—
Reply to this email directly, view it on GitHub https://github.com/flutter/flutter/issues/45847#issuecomment-2007076944, or unsubscribe https://github.com/notifications/unsubscribe-auth/AOWPU24WGL2K3XL63C22R5TYZAXG3AVCNFSM4JTJAOHKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TEMBQG4YDONRZGQ2A.
You are receiving this because you are subscribed to this thread.

Here's the Node.js function that does the exchange:
import { OAuth2Client } from 'google-auth-library';

async function handleSignIn(request) {
    try {
        const oauth2Client = new OAuth2Client(
            process.env.GOOGLE_CAL_OAUTH_CLIENT_ID,
            process.env.GOOGLE_CAL_OAUTH_CLIENT_SECRET,
            'postmessage'
        );
        const authCode = request.data.authCode;
        const { tokens } = await oauth2Client.getToken(authCode);
        oauth2Client.setCredentials(tokens);

        // Store the tokens securely in your database against the user's profile.
        // You will use these tokens in the future to make authorized requests on behalf of the user.
        if (tokens.access_token && tokens.refresh_token) {
             console.log(tokens);
        } else {
            throw new Error("Tokens are missing from the response");
        }

        return { success: true, message: 'Tokens fetched and stored successfully.' };
    } catch (error) {
        gcLog('serverLog', 'ERROR', error, 'googleAuthHandleSignIn');
        firebaseFunctionsLogger.error(error);
        return { success: false, error: error.message };
    }
}

Here's the Node.js function that does the exchange:
import { OAuth2Client } from 'google-auth-library';

async function handleSignIn(request) {
    try {
        const oauth2Client = new OAuth2Client(
            process.env.GOOGLE_CAL_OAUTH_CLIENT_ID,
            process.env.GOOGLE_CAL_OAUTH_CLIENT_SECRET,
            'postmessage'
        );
        const authCode = request.data.authCode;
        const { tokens } = await oauth2Client.getToken(authCode);
        oauth2Client.setCredentials(tokens);

        // Store the tokens securely in your database against the user's profile.
        // You will use these tokens in the future to make authorized requests on behalf of the user.
        if (tokens.access_token && tokens.refresh_token) {
             console.log(tokens);
        } else {
            throw new Error("Tokens are missing from the response");
        }

        return { success: true, message: 'Tokens fetched and stored successfully.' };
    } catch (error) {
        console.log(error);
        return { success: false, error: error.message };
    }
}

Does not work for me: invalid_grant error

I managed to rig a workaround with a webpage and Firebase NodeJS callback. You direct the user to the page.html from a link in the Flutter web app for authorization.
page.html
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Authorize Google Drive Access</title>
    <script src="https://accounts.google.com/gsi/client"></script>
  </head>
  <body>
    <script>
    const client = google.accounts.oauth2.initCodeClient({
    client_id: '1234567890.apps.googleusercontent.com',
    include_granted_scopes: false,
    scope: 'https://www.googleapis.com/auth/drive.file email profile',
    ux_mode: 'redirect',
    redirect_uri: "https://us-central1-PROJECT-NAME.cloudfunctions.net/GoogleScopes/grant",
    response_type: 'code',
    access_type: 'offline'
    });
    client.requestCode();
    </script>
  </body>
</html>

grant.js
const { db } = require('./admin');
const express = require('express');
const cors = require('cors')({ origin: true });
const helmet = require('helmet');
const { encrypt } = require('./encryption');
const { OAuth2Client } = require('google-auth-library');

const { defineString } = require('firebase-functions/params');
const client_id = defineString('GOOGLE_CLIENT_ID');
const hosting_login_redirect_url = defineString('HOSTING_LOGIN_REDIRECT_URL'); //https://us-central1-PROJECT-NAME.cloudfunctions.net/GoogleScopes/grant

const scopes = [
    'https://www.googleapis.com/auth/drive.file',
    'email',
    'profile'
];

const oauth2Client = new OAuth2Client({
  clientId: client_id.value(),
  clientSecret: process.env.GOOGLE_CLIENT_SECRET,
  redirectUri: hosting_login_redirect_url.value(),
  scopes: scopes,
   });

const app = express();
app.use(helmet());
app.use(express.json());
app.use(cors);

async function getToken(authorizationCode) {
  try {
    const { tokens } = await oauth2Client.getToken(authorizationCode);
    console.log('Access Token:', tokens.access_token);
    console.log('Refresh Token:', tokens.refresh_token);
    console.log('Id Token:', tokens.id_token);
    console.log('Token Expiry:', tokens.expiry_date);
    return tokens;
  } catch (error) {
    console.error('Error retrieving access token:', JSON.stringify(error));
    throw new Error(error.message);
  }
}

const client = new OAuth2Client(client_id.value());

verify = (token) => new Promise(async (resolve, reject) => {
  try {
    client.verifyIdToken({
      idToken: token,
      audience: client_id.value()
    }, (err, ticket) => {
      if (!err) {
        const payload = ticket.getPayload();
        if (payload && payload.sub && payload.email) {
          resolve(payload);
        }
      }
      reject(new Error("Missing items from id_token." + err));
    });
  } catch (err) {
    reject(err);
  }
})

app.get('/grant', async (req, res) => {
    console.log(JSON.stringify(req.query));
    console.log(url);
    try {
        if (!req.query.code) {
          throw new Error("No authorization code was returned.");
        }
        const tokens = await getToken(req.query.code)
        const payload = await verify(tokens.id_token);
        console.log("tokens: " + JSON.stringify(tokens));
        console.log("payload.sub: " + String(payload.sub));
        console.log("payload.email: " + String(payload.email));
        console.log("tokens.expiry_date: " + String(tokens.expiry_date));
        var tokenSet = {
          email: payload.email, expiry_date: (new Date(tokens.expiry_date)).getTime(),
          sub: payload.sub
        };
        if (tokens.access_token) {
          tokenSet.access_token = encrypt(tokens.access_token);
        }
        if (tokens.refresh_token) {
          tokenSet.refresh_token = encrypt(tokens.refresh_token);
        }

        await db.collection('tokens').doc(payload.sub).set(tokenSet, { merge: true }); //save your encrypted tokens

        return res.json({ status: 'Authorization Success - You may close this page.', code: 200 });
    } catch(error) {
      return res.status(400).json({ status: 'Authorization Error - You may close this page.', message: String(error)});
    }
});

exports.GoogleScopes = app;

index.js
const functions = require('firebase-functions');
const {GoogleScopes} = require('./grant');

module.exports = {
'GoogleScopes': functions.runWith({ secrets: ["GOOGLE_CLIENT_SECRET"] }).https.onRequest(GoogleScopes),
};

Did any of you get this working for iOS?

I ended up going the same route as @pahtz
Worth noting you don't need to create an html page to request auth. You can generate a url from the server, send it back to the flutter app and then open that using url launcher.
export class GoogleOauth {
  oAuthClient = new google.auth.OAuth2(
    googleClientId,
    googleClientSecret,
    `${baseFunctionsUrl}/onReq-api/google-oauth`
  )

  generateAuthUrl = async (uid: string): Promise<string> => {
    return this.oAuthClient.generateAuthUrl({
      access_type: 'offline',
      state: uid,
      include_granted_scopes: true,
      scope: [
        'https://www.googleapis.com/auth/calendar.readonly',
        'https://www.googleapis.com/auth/calendar.events',
      ],
    })
  }

  handleCallback = async (code: string, state: string): Promise<boolean> => {
    const uid = state
    const { tokens } = await this.oAuthClient.getToken(code)

    if (tokens.refresh_token) {
      const userRepo = new UserRepository()

      await userRepo.addIntegration(uid, 'google', {
        refreshToken: tokens.refresh_token,
      })

      return true
    }

    return false
  }
}

Faced the same issue (not getting refresh_token in subsequent sign in). But followings works for me :
GoogleSignIn(
        scopes: [],
        serverClientId: CLIENT_ID,
        forceCodeForRefreshToken: true,
      );

Future<Map<String, dynamic>?> _exchangeAuthCodeForTokens(
    String authCode,
  ) async {
    final response = await http.post(
      Uri.parse('https://oauth2.googleapis.com/token'),
      headers: {'Content-Type': 'application/x-www-form-urlencoded'},
      body: {
        'code': authCode,
        'client_id': CLIENT_ID,
        'client_secret': CLIENT_SECRET,
        'redirect_uri': '',
        'grant_type': 'authorization_code',
        'access_type': 'offline',
        'prompt': 'consent',
      },
    );

    if (response.statusCode == 200) {
      return json.decode(response.body);
    } else {
      return null;
    }
  }


Fixes unable to create next available network container in custom networkview

This fix contains, the terraform plugin unable to create next available network container for both IPV4 and IPV6 network containers in the custom network view in NIOS.

Why the existing code does not work properly?


Used turtlesim_msgs

Related with this PR https://github.com/ros/ros_tutorials/pull/169

Linux
Linux-aarch64
Linux-rhel
Windows

Compilation from source is fine! merging!


Validate core libs in distribution

This adds validation of gradle core libs presence to the distribution tests.
Thereby we know which jar got added maybe unexpectedly.
Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

@bot-gradle test this


Multiple watches, example?

Hi @dalehumby
First of all - great work! Thanks!
Can you possibly provide an example of a setup with multiple watches (different generations) and multiple ESPs (in different rooms) giving me binary_sensors.presence for each person in HA?
I would very much like to use this for tracking wether my wife, the kids or myself are at home or not.
Thanks!

Hi @martinrosenauer
I'm trying to do the same thing. Did you mange to get this working?

I detects all watches, eg here from my surroundings (3 diff watches)
[D][ble_adv:077]: Found Apple Watch (mac 57:EC:5A:F5:5C:98) rssi -51
[D][sensor:125]: 'Jan Apple Watch bil RSSI': Sending state -70.86550 dBm with 0 decimals of accuracy
[D][sensor:125]: 'room_presence_debounce': Sending state 1.00000  with 1 decimals of accuracy
[D][script:020]: Script 'presence_timeout' restarting (mode: restart)
[D][ble_adv:077]: Found Apple Watch (mac 6C:CC:63:A9:B6:41) rssi -75
[D][sensor:125]: 'Jan Apple Watch bil RSSI': Sending state -72.10585 dBm with 0 decimals of accuracy
[D][sensor:125]: 'room_presence_debounce': Sending state 1.00000  with 1 decimals of accuracy
[D][script:020]: Script 'presence_timeout' restarting (mode: restart)
[D][ble_adv:077]: Found Apple Watch (mac 7B:75:FF:8B:75:79) rssi -88
[D][sensor:125]: 'Jan Apple Watch bil RSSI': Sending state -76.87409 dBm with 0 decimals of accuracy
[D][sensor:125]: 'room_presence_debounce': Sending state 1.00000  with 1 decimals of accuracy
[D][script:020]: Script 'presence_timeout' restarting (mode: restart)
But they all report as one watch back to HA

@stofakiller for the 3 watches, are they all Apple Watches and are they all different models of Watch? Ie Watch 4, 5 and 6?

In my case both are different models one a series 5 and one a series 6. I would want to be able to identify which one is in the room if not both. As this will tell me who it is in a way. Any ideas on how to get that done?

@stofakiller for the 3 watches, are they all Apple Watches and are they all different models of Watch? Ie Watch 4, 5 and 6?

Some are my neighbors, so i dont know, but i think the code finds all possible watches...

In my case both are different models one a series 5 and one a series 6. I would want to be able to identify which one is in the room if not both. As this will tell me who it is in a way. Any ideas on how to get that done?

So far i cant find anything usefull in the data from the watch, i found out to change the code to my phone, so i think i'll try to make it track both my phone and my watch at the same time...

So far i cant find anything usefull in the data from the watch, i found out to change the code to my phone, so i think i'll try to make it track both my phone and my watch at the same time...

It's been a while, but have you done this?

I have given up on it for the time being. Without being able identify the exact device it won't work for my use case.

Same here. It works really well but I need something that only works with
specific devices.
I've tried ESPresence and others but the overhead is too high.
I need a single-device solution, which this is, but it is not detecting
unique devices yet.
On Wed, 23 Aug 2023 at 16:54, ArnoS146 @.***> wrote:

So far i cant find anything usefull in the data from the watch, i found
out to change the code to my phone, so i think i'll try to make it track
both my phone and my watch at the same time...
It's been a while, but have you done this?
I have given up on it for the time being. Without being able identify the
exact device it won't work for my use case.
—
Reply to this email directly, view it on GitHub
https://github.com/dalehumby/ESPHome-Apple-Watch-detection/issues/20#issuecomment-1690216660,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKGVQWZO3NBH4VEEPJV5YC3XWYRU5ANCNFSM5RI2MTQA
.
You are receiving this because you commented.Message ID:
@.***>


libnixxml: fix compilation

Motivation for this change
I was looking at hydra failures and this one seemed simple to fix. I'm not using this package myself.
Things done

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

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

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

Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

dydisnix
libnixxml

Result of nixpkgs-review pr 121533 at 13390c9b run on x86_64-linux 1

2 packages built successfully:

dydisnix
libnixxml

1 suggestion:

warning: build-tools-in-build-inputs
getopt is a build tool so it likely goes to nativeBuildInputs, not buildInputs.
Near pkgs/development/libraries/libnixxml/default.nix:27:3:
   |
27 |   buildInputs = [ libxml2 gd.dev glib getopt libxslt nix ];
   |   ^

Due to the suggestion from @r-rmcgibbo, I've added a commit that ensures that it now at least cross-builds.

I've updated this to just run the bootstrap commands for linking the README, the autoreconfHook should do the rest now.
I also found out that the nixexpr2xml was referring to the /bin/bash shebang, so that's fixed now too. (Somehow I didn't get patchShebangs working, I still don't get how I should use that fully or why it sometimes doesn't seem to work. Just running it against either the output or the source didn't do anything.)

nixpkgs-review happy for me, nixos x86_64, macos 10.15

Result of nixpkgs-review pr 121533 run on x86_64-linux 1

2 packages built:

dydisnix
libnixxml


Update links

Coverage remained the same at 92.109% when pulling 577ad21cb33ea87ed9156ba4c985ed0da8c1bd56 on kant:patch-1 into ccc76fa58f4bab7c86cc5e90f945441afee4802c on Fitbit:master.

@kant Thank you very much for contributing ;)


Really? And where is the sample script uses New-AzSqlDatabaseFailoverGroup, Switch-AzSqlDatabaseFailoverGroup, New-AzSqlElasticPool ???

I don't see a failover group is created anywhere with this script!

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

ID: 75019ae3-53b9-8b01-2d3d-ef29ea351f93
Version Independent ID: 14b41b00-26a5-3c6d-fffc-b2f77387a573
Content: PowerShell example-geo-replication failover group-single Azure SQL Database
Content Source: articles/sql-database/scripts/sql-database-setup-geodr-failover-database-failover-group-powershell.md
Service: sql-database
Sub-service: high-availability
GitHub Login: @MashaMSFT
Microsoft Alias: mathoma

@alvipeo Thank you for bringing this to our attention. We are investigating why this is the case and determine next steps.

The PowerShell script example does include the new Az.SQL cmdlets but does not provide any detail about the Geo-Replication specific cmdlets such as:

New-AzSqlDatabaseFailoverGroup
Switch-AzSqlDatabaseFailoverGroup
New-AzSqlElasticPool

Assigning to the content author to evaluate and update as appropriate.

Hi @alvipeo ,
Thank you for contacting Microsoft and providing your feedback to our documentation! We'll need some time to look into this further. Depending on the complexity, the turnaround time for this may vary anywhere from a few business days to a few business weeks. We'll reply via comment should we need anything further in the meantime, and please feel free to do the same.
If you're suggesting a simple change to the documentation, it may be faster for you to submit the edit yourself via a Pull Request (PR). You can do so by following these steps:

Navigate to the page of interest
Select the "Edit" button at the top right of the page
Select the "Pencil" icon on the right
Modify the text within the text box in markdown format
Name your file change and copy the link to your Git Issue into the "extended description" box
Select "Propose file change"
Select "Create pull request" on the 'Comparing changes' page
Select "Create pull request" on the 'Open a pull request' page
Wait for an author to review and approve the change request - this can take a bit depending on the complexity

Doing so will allow authors to directly add your text to the documentation. This also displays your github image on the page of authors, and list you as a contributor to the documentation.
Otherwise, we'll continue to research your suggestion, and get back to you as soon as we have more information for you.
Thanks again for your submission, and hope you have a wonderful rest of your day!

Hi @alvipeo , thanks again for contacting Microsoft! You are correct, the title for this article was inadvertently changed. I've changed it back, as this article is meant to configure active geo replication. We're working on releasing a partner script that actually creates the failover group and adds the single database to it. We hope to have that out next week, if possible. Thanks again!

We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will gladly continue the discussion.

Hi @alvipeo,
Thanks again for bringing this to our attention! We've released a new doc that contains the cmdlets you're looking for.
Hope that helps and please let us know if we can be of further assistance.
Thanks!
Masha from the SQL Docs team


create-react-app not recognised

OS: windows 10 64 bit.
NPM: v5.0.3
nodejs: v7.9.0
create-react-app: v1.3.3
The package gets installed globally but I can't access the create-react-app method. I have the same build on my laptop and it works.
It's not the system env path variables as they aren't the laptop where is works. Pleas help.

It's not the system env path variables as they aren't the laptop where is works.

I’m not sure what you mean by this, but if you can’t run create-react-app it definitely means you need to find where npm installed it, and put this folder in your PATH.


manila: by default turn off manila input-model change

Commented out manila input-model change.
Reference: https://github.com/SUSE/cloud-specs/blob/master/specs/cloud8/manila.rst (Manila Spec)
Manila will NOT be included by default in green field installs and reference input models. Instead, manual steps will be documented for those wishing to enable Manila in their configuration post-install.

This can be abandoned in favor of #2782


Two random plugins are never updated

I'm facing an issue where two random plugins do not get updated. It's always two, but it would not be the same ones every time. Have you seen this before? Any idea where I could start looking to solve this?
I see this on both my work and personal computer (sharing the same vim config).
Updating plugins (56/58)
[========================================================  ]

- papercolor-theme: OK
- fzf: OK
* vimwiki: Updating ...
- apiblueprint.vim: OK
- vim-puppet: OK
- vim-signify: OK
- vim-colors-solarized: OK
- yats.vim: OK
- neosnippet: OK
- vim-coffee-script: OK
- csv.vim: OK
- neomake: OK
- nvim-typescript: OK
- material.vim: OK
- neosnippet-snippets: OK
- ctrlp.vim: OK
- tagbar: OK
- vim-rhubarb: OK
- denite.nvim: OK
- vim-markdown: OK
- pgsql.vim: OK
- neocomplcache: OK
* goyo.vim: Updating ...
- vim-ruby: OK
- ack.vim: OK
- vim-go: OK
- vim-terraform: OK
- vim-airline: OK
- elly.vim: OK
- float-preview.nvim: OK
- iceberg.vim: OK
- editorconfig-vim: OK
- vim-toml: OK
- nerdtree-git-plugin: OK
- nerdtree: OK
- vim-fugitive: OK
- thrift.vim: OK
- vim-one: OK
- tabular: OK
- fzf.vim: OK
- ayu-vim: OK
- vim-tmux-navigator: OK
- vim-visual-multi: OK
- nginx.vim: OK
- vim-jsx: OK
- bclose.vim: OK
- vim-delve: OK
- vim-graphql: OK
- neoformat: OK
- minimalist: OK
- vim-pug: OK
- vim-surround: OK
- typescript-vim: OK
- vim-fish: OK
- vim-javascript: OK
- plantuml-syntax: OK
- nerdcommenter: OK
- haproxy.vim: OK

:version
NVIM v0.6.1
Build type: Release
LuaJIT 2.1.0-beta3
Compiled by builduser

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/share/nvim"

Run :checkhealth for more info

Type:

[ ] Bug
[ ] Enhancement
[ ] Feature Request
[X] Question

OS:

[ ] All/Other
[X] Linux
[X] OS X
[ ] Windows

Vim:

[ ] Terminal Vim
[ ] GVim
[X] Neovim

Run the :checkhealth command in Neovim to get a detailed analysis of your Neovim environment. This will help identify potential issues with your setup.

#1285 has similar symptoms, and I think #1289 will significantly mitigate the issue.


snap

Added snapcraft.yaml to build a snap. Snap is supported across 41 Linux including Ubuntu/Debian and soon Windows 10 under the WSL2.

Codecov Report

Merging #1346 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1346   +/-   ##
=======================================
  Coverage   57.76%   57.76%
=======================================
  Files         131      131
  Lines       24687    24687
=======================================
  Hits        14260    14260
  Misses       9752     9752
  Partials      675      675

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 b8ceabf...9717b60. Read the comment docs.


Misleading file name

Hi everyone,
The page used to extract ingredients and recycling info is called EditOcrPage.
And the file name is edit_ingredients_page which is wrong.
But at the top of file, there is a TODO:
// TODO(monsieurtanuki): rename file as `edit_ocr_page.dart`

@monsieurtanuki: Any idea why it wasn't changed (a Git blame refers to a commit back in November)?

@g123k There are no good reasons to delay the renaming of the file as edit_ocr_page.dart, except that there were more important issues to deal with - and currently there are still more important issues. That's the general idea behind a  TODO.
That said, feel free to rename the file, that's a quick win and the code will be more consistent.


Switch-case block does not see final attribute

When i run code below i have an Error: java: constant string expression required.
Looks like final modifier is ignored.
Java8, LombokVersion 1.16.14
By the way, idea see final attribute as well and I have no ability to change variable.
The error is only running code.
public class TestClas {
  public static void main(String[] args) {
    switch ("a") {
      case Test.A:
    }
  }
  @FieldDefaults(level = AccessLevel.PUBLIC, makeFinal = true)
  public static class Test {
    static String A = "a";
  }
}

intended behavior. As the docs say, @FieldDefaults only applies to instance fields. It does nothing to static methods.


Query doesn't work with .stream() if options not exists

Environment
Knex version: 3.1.0
Database + version: Oracle 18c
OS: Windows (WSL Ubuntu 22.04)
Bug

On make a query using stream method the knex force me passing a parameter in options!

Example: (with first case, never join .on('data'))
// This dosen't work
const stream = db.raw(`select * from users`).stream()

stream.on('data', (chunk) => {
  console.log(chunk)
})

// But... This work
const stream = db.raw(`select * from users`).stream({})

stream.on('data', (chunk) => {
  console.log(chunk)
})

If is optional parameters is should not a impeditive for use .pipe() .on()

Can you create a pr?

Shure 🙂

Finished tests, and okay for oracledb driver (PR #6040) but a question arose here.
In this case i solved only for oracledb driver! I see example used on mysql
https://github.com/knex/knex/blob/aedba5e49ccbe4e44bf1a57f51a63d8b1ec0e6e6/lib/dialects/mysql/index.js#L104-L107
But maybe it's interesting fix this on here where stream options is {} with default for all drivers?
https://github.com/knex/knex/blob/aedba5e49ccbe4e44bf1a57f51a63d8b1ec0e6e6/lib/client.js#L157-L160
stream(connection, queryParam, stream, options = {}) {

or this is a bad idea?
Thanks :) @rluvaton


Add governance info to website and clean up CONTRIBUTING.md

Some of the info in this doc duplicates stuff in README.md.  This should also link to https://github.com/expressjs/express/blob/master/Contributing.md and other relevant docs.
We should also note that since it is under the expressjs org and part of Node Founation, the general governance policies are the same as for th expressjs/express repo.
I'd also like to add some notes about opening PRs and other conventions, perhaps noting that we have slightly less stringent policies than expressjs/express (i.e. we don't usually required you to squash commits, using the Big Green Merge button is generally OK, etc.)

Also, we should provide similar information and/or pointers to repo docs on the expressjs.com site itself.  Copied from https://github.com/expressjs/express/issues/2902:

We need ... a central location to provide the governance documentation and resources for all the projects that are under the Express TC without copying files into every single repository. We need something like https://nodejs.org/en/foundation/ and other sections of the Node.js website

This is done.  If we need to make further changes or additions, let's open new issues.


Update setup instructions for preview 4

Type of issue
Typo
Description

[ ] We need VS 17.10 preview.
[ ] Screenshots need to be updated.
[x] Also need to mention the extra templates we've added. (This was done in preview-3)

Page URL
https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/setup-tooling?tabs=visual-studio
Content source URL
https://github.com/dotnet/docs-aspire/blob/main/docs/fundamentals/setup-tooling.md
Document Version Independent Id
38acc47a-cbda-21f9-5364-2aa038b569a5
Article author
@IEvangelist

Hi @mitchdenny - I'm curious, do we need to say that Visual Studio 17.10 is required? The current language reads as 17.9 or higher, or are we just trying to push for the latest?

Sorry for the delay. Yes we do


Bundler adds source html as html import

Hello,
while testing a bundled polymer app i got many errors like this one:

Uncaught DOMException: Failed to execute 'define' on 'CustomElementRegistry': this name has already been used with this registry

...but with my source files everything is working fine.
So i inspected the bundled html and found out that it imports the source html ("index.html") at the end of the body tag.
To reproduce it, i made a small, quite empty html file without any imports and bundled it. This is the result:
deleteme.html:
<!DOCTYPE html>

bundle.html:
<!DOCTYPE html>

<link rel="import" href="deleteme.html">

execute polymer bundler:
# polymer-bundler: 3.0.1
polymer-bundler.cmd deleteme.html > bundle.html

Obviously i will get the errors because the browser will load my bundled and unbundled html file. So all polymer dependecies and custom components will be parsed twice.

+1
In my case the import results in a GET request to the server for /index.html, which results in a 404 error since the page is a SPA and the server doesn't have a route to service such requests.
Is there a workaround?

unable to reproduce your experience with example deleteme.html and 3.0.1 polymer-bundler.  with what OS and version of node are you encountering this issue?

@dkirchhof @onwarion ^

Can't help much since I moved to native components, but this is what I have from my repo:
OS : Windows 10
polymer.json :
{
  "entrypoint": "index.html",
  "builds": [{
    "bundle": true,
    "inlineScripts": "true",
    "js": {"minify": true},
    "css": {"minify": true},
    "html": {"minify": true}
  }]
}

Build folder polymer.json :
{
  "entrypoint": "index.html",
  "fragments": [],
  "sources": [
    "src\\**\\*",
    "index.html"
  ],
  "extraDependencies": [
    "bower_components\\webcomponentsjs\\*.js"
  ],
  "builds": [
    {
      "bundle": true,
      "inlineScripts": "true",
      "js": {
        "minify": true
      },
      "css": {
        "minify": true
      },
      "html": {
        "minify": true
      }
    }
  ]
}

The insert is "......." at the end of the bundle.

I think i've found a way to reproduce on mac.   its a path comparison thing.  i am writing test to prove its fixed.  thanks for replying!

Will get this released in next point release of bundler.


Create a custom domain for the gh-pages

Being able to host the  symbology explorer on GitHub is great! The url, however, is a bit verbose. I should register a custom domain name as described here: https://help.github.com/articles/setting-up-a-custom-domain-with-github-pages/

I have registred milsymb.net. Need to figure out how to point it to the project's gh-pages.

Done. You can now access the project with http://explorer.milsymb.net/


Distribute linalg.fill + subtensor_insert at the flow level

linalg.pad_tensor op is getting lowered to linalg.fill + subtensor_insert, both those ops are not being distributed in DispatchLinalgOnTensor.
Those ops need to be distributed on several workgroups to be efficiently executed on the GPU. Right now on Vulkan we work-around the problem with ConvertToGPU, this is something we want to remove, on the CUDA side this cause those ops to be completely serialized.
linalg.fill could easily be tiled be marked as root and distributed but subtensor_insert op currently cannot be tiled.
Should we keep linalg.pad_tensor and tile it? Do we have anther way to distribute subtensor_insert?

@benvanik, @MaheshRavishankar, this is currently blocking performance for MobileBert on CUDA. If you have any thought about the right way to handle this please let me know.

Probably the best way to handle this long term is to tile + fuse pad tensor ops with it's consumers. The linalg.pad_tensor op is not a structured op. So it would be a different pattern to tile + fuse these ops with other structured ops.  Though I don't really know what the tiled+ fused ir would look like

Wouldn't fusing linalg.pad_tensor just push the problem to the consumer. How would we tile a fused linalg.pad_tensor + linalg ops?
It also seems a bit scary to me to not have a way to distribute pad_tensor op on their own as this would completely tank performance whenever the op isn't fused.

I commented on step 1), this generally looks like I'd expect, if we
decoupled this from fusion and essentially rewrote subtensor(pad) into
pad(subtensor).
Then I would probably go directly to step 3. Matthias is adding support for
vectorizing more PadTensor cases.
This should compose reasonably to get us to the point where we can use the
vector transfer splitting pattern to produce something like:
if (%in_bounds) {
  %0 = vector_load ... : vector<axbxcxt>
  scf.yield %0
} else {
  patchup
}

There is also potentially the masking route where a mask is explicitly
computed.
From this form, we should be in a reasonable place to decide how to attack
the scf.for. + scf.if canonicalizations.
I expect this latter part to be the source of quite some work that will be
useful in different settings (IREE, XLA, sparse etc).
Some of it can be solved with affine analyses and that is probably a good
way to attack it first.
On Thu, May 27, 2021 at 4:27 PM Lei Zhang @.***> wrote:

+1 to what @MaheshRavishankar https://github.com/MaheshRavishankar
said. I've also chatted a few times with @nicolasvasilache
https://github.com/nicolasvasilache about this previously. This is one
of the largest remaining issue for convolution ops. We should really look
to address it in the most proper way and once for all.
From what I can see, there are a few steps:

Enable fusing the linalg.pad_tensor op with its consumers. This
will avoid us from allocating buffers and copying the data because we don't
need a separate kernel for it after fusion.
The linalg.pad_tensor op pulled into the loops enclosing its
consumer will have some pretty nasty affine.min ops for handling
boundary cases in the general form (esp. if we have dynamic shapes and
unknown processor IDs). Canonicalization is needed here. We also need to
split the boundary and internal cases, like using scf.if and then
hoist these ifs out of the enclosing scf.for so we create separate
loop nests for boundary and internal cases. More canonicalization cleanups.
Then vectorize. For boundary cases we can do scalar read and
together with padding values to form vectors. For internal cases we should
have perfect shapes.

I've https://reviews.llvm.org/D103243 for 1); but gotten distracted by
other stuff before pushing it further. 2) is actually the most difficult
part and I might be oversimplifying things there as I haven't really tried
it out.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/google/iree/issues/6032#issuecomment-849681337, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACNNU5AE6TOQUGK43VVXSCLTPZJFNANCNFSM45TND3HA
.

--
N

Closing this issue.  Current status is

Padding is lowered to fill + tensor.insert_slice by default. That does get distributed
SPIR-V side fuses padding with its consumer
Fusing padding with producer is on path to being enabled.


Clarification on Pointer Masking Extension Implementation

I am currently implementing the Pointer Masking Extension in Sail and have a few questions and concerns that I would like to clarify with the community. Your assistance in addressing these queries would be greatly appreciated.
1. Setting of PMM Value:

Is the value of PMM set by the user, or is it assigned by the hardware based on VM enabled/disabled?
In the case of SV57 being enabled and PMM set to 11, what is the expected behavior(If we do the cheap implementation) ? Are there any exceptions raised?

2. PMM = 01 (Reserved):

When PMM is set to 01 (reserved), should an exception be raised, or is there a default behavior specified?

These questions arise during the implementation, and clarification on these points would greatly help in ensuring the correctness of the Pointer Masking Extension.

Thank you for working on this! The PMM fields are WARL; i.e., they do not result in an exception when writing an invalid value, but the invalid value will cause the field to not be updated. Regarding the specific questions:

The initial value of PMM is 0 (disabled) and will be set by the user/software.
Trying to set PMM to 11 with Sv57 is implementation specific – if this mode is supported by the hardware, then it will be the normal pointer masking behavior; otherwise the field is not updated.
PMM with 01 is an invalid write and follows WARL behavior (i.e., the value of PMM is not updated).

WARL; i.e., they do not result in an exception when writing an invalid value, but the invalid value will cause the field to not be updated

That's not exactly what WARL means.  It just means that the read value is legal.  If PMM was previously 00 and you try to write 01 (illegal), the final value might be 00 (unchanged) or it could instead be 10 or 11 (assuming those values are supported by the hardware and thus legal).

Good point; the behavior that I described above is not entirely due to WARL semantics – but does capture the intention: When you try to set the PMM bits to an unsupported value, the final value is the old value (as opposed to a different legal value).
I just double-checked the spec as well, to make sure this is specified there (I think it is).

Thanks it clears my points.

To clarify: My previous reply was just in reference to the sentence I quoted from this issue, not to anything said in the spec.  The spec is probably fine (but I haven't looked at it in a while).

To clarify: My previous reply was just in reference to the sentence I quoted from this issue, not to anything said in the spec. The spec is probably fine (but I haven't looked at it in a while).

That's how I read it, and I think it is a very good point.
It looks like we can close this issue.


chore: Removing usage of action right pane component

Description
Removing usage of action right pane component to use Module inputs form directly as right pane on EE.
Fixes #36898
Automation
/ok-to-test<EMAIL_ADDRESS>:mag: Cypress test results

[!IMPORTANT]
🟣 🟣 🟣 Your tests are running.
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/11475223785
Commit: e404221a9e73ae6d45ac496905b5bf0a872eae22
Workflow: PR Automation test suite
Tags: @tag.Sanity
Spec: ``
Wed, 23 Oct 2024 07:35:44 UTC

Communication
Should the DevRel and Marketing teams inform users about this change?

[ ] Yes
[ ] No

/build-deploy-preview skip-tests=true