text:
Webfont loading/optimization updates

CC: @notwaldorf @robdodson @addyosmani @igrigorik for feedback.
This may still need some work, but it's my initial cut at at update to https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/webfont-optimization
All feedback is welcome!
The primary changes are:

Removing references to inlined base64-encoded fonts (see https://www.bramstein.com/writing/web-font-anti-patterns-inlining.html)
Pointing people towards <link rel="preload"> as the easiest way to download a font earlier.
Moving most of the font-display material from Rob's updates article into the relevant section of this article.
Somewhat steering folks toward those two options vs. the Font Loading API, though I'm not very aggressive about that.
Putting in a few bits about service workers (of course!).

One area that I didn't cover, but was thinking about adding in, was a detailed explanation of how to use a fallback font with similar dimensions to your primary font (chosen using https://meowni.ca/font-style-matcher/) to minimize layout churn. What are thoughts about putting that into this post vs. pointing people to standalone resources?

Whoops!
There were 4 critical errors that broke the build and prevented it from being automatically deployed.
There were 62 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
ERRORS
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L283 - Do not hard code developers.google.com in links.
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L573 - Do not hard code developers.google.com in links.
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L574 - Do not hard code developers.google.com in links.
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L597 - Do not hard code developers.google.com in links.
WARNINGS
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md - No wf_blink_components field found in metadata. Add if appropriate.
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L12 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L14 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L25 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L29 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L31 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L37 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L44 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L48 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L50 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L51 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L52 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L56 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L62 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L66 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L70 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L96 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L100 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L103 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L105 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L107 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L110 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L113 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L115 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L122 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L124 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L159 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L161 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L166 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L168 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L171 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L172 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L174 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L175 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L180 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L191 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L192 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L228 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L232 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L237 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L239 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L241 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L253 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L255 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L259 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L266 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L267 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L536 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L559 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L563 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L565 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L567 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L571 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L586 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L588 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L590 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L591 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L592 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L593 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L594 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L595 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L597 - Line must be at most 100 characters

wow this looks good to me. super comprehensive!

Thanks! I've avoided fixing the line length linting warnings in this PR, as it would make the diffs way too noisy. I believe the other feedback and linting issues are addressed.

Whoops!
There were 62 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md - No wf_blink_components field found in metadata. Add if appropriate.
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L12 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L14 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L25 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L29 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L31 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L37 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L44 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L48 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L50 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L51 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L52 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L56 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L62 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L66 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L70 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L96 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L100 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L103 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L105 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L107 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L110 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L113 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L115 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L122 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L124 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L159 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L161 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L166 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L168 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L171 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L172 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L174 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L175 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L180 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L191 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L192 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L228 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L232 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L237 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L239 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L241 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L253 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L255 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L259 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L266 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L267 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L537 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L560 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L564 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L566 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L568 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L572 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L587 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L589 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L591 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L592 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L593 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L594 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L595 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L596 - Line must be at most 100 characters
src/content/en/fundamentals/performance/optimizing-content-efficiency/webfont-optimization.md#L598 - Line must be at most 100 characters

Can we resolve the line length warnings

To jeff's point, I am not sure what diff issue would be if we sort the line lengths out.... also this is going to appear every time there is a change to this content.

@PaulKinlan There's a decent number of inline changes within the text of existing paragraphs, and those changes would be lost in the noise in GitHub's diff viewer if I explicitly wrapped all of the lines to 100 characters.
But since we're now at the point where the content changes have been reviewed by Rob and Addy, I'll add in the line rewrapping in another commit.

:+1:

Linting fixes are in, along with a corresponding increase in the noisiness of the diff.

authors: PaulKinlan WebFundBot jeffposnick robdodson

repo: google/WebFundamentals


text:
[lighthouse] add "unsuccessful http code" reference

What's changed, or what was fixed?

adds reference doc for "unsuccessful HTTP status code" lighthouse audit

Fixes: googlechrome/lighthouse/issues/3787
Target Live Date: 2017-12-18

[ ] This has been reviewed and approved by @petele
[x] I have run gulp test locally and all tests pass.
[x] I have added the appropriate type-something label.

R: @petele

:+1:

source: gharchive/pull-request

authors: WebFundBot kaycebasques

license_type: permissive

license_source: bigquery


text:
Androidx支持

这个项目有没有计划兼容Androidx？

implementation 'com.google.androidx.agera:agera:1.4.0'
implementation 'com.google.androidx.agera:content:1.4.0'
implementation 'com.google.androidx.agera:database:1.4.0'
implementation 'com.google.androidx.agera:net:1.4.0'
implementation 'com.google.androidx.agera:rvadapter:1.4.0'
implementation 'com.google.androidx.agera:rvdatabinding:1.4.0'

implementation 'me.sfce.androidx.agera:agera:1.4.0'
implementation 'me.sfce.androidx.agera:content:1.4.0'
implementation 'me.sfce.androidx.agera:database:1.4.0'
implementation 'me.sfce.androidx.agera:net:1.4.0'
implementation 'me.sfce.androidx.agera:rvadapter:1.4.0'
implementation 'me.sfce.androidx.agera:rvdatabinding:1.4.0'

source: gharchive/issue

repo: google/agera


text:
XiaoMi MI3 os:Android4.4.4 ，Camera Preview can not be used

XiaoMi MI3 os:Android4.4.4 ，If open flase, Camera Preview can not be used.

Facing same problem with Xiaomi Redmi1s, API 19. Camera Preview is black.

good job !!!!

repo: google/cameraview


text:
SQlite backend

Barak Michener said on his GopherCon 2015 talk that tables are graphs and graphs are tables. If so then it would be really useful to have a SQlite backend  so that one can use cayley in a go application where disk space is the, like a mobile devices, rather then performance

I went along that path for librdf – I've not fully arrived, however. http://purl.mro.name/librdf.sqlite/
Hope it helps.

@mro I am not sure what I should do with that, sorry.

@gozes if in doubt: nothing.

@mro that is good life advices :smile:

Haha, the way this ended was the best.  Moving it to feature request forum: https://discourse.cayley.io/t/sqlite-storage-engine/219

authors: gozes mro robertmeta

repo: google/cayley

license_source: github-api


text:
Weird behavior redefining constructors

This doesn't cause any type warnings. The type system merges the properties of the first and second declaration of C into a single type.
var C = class {
  f() {}
};
C = class {
  g() {}
};
var n = new C();

n.f();
n.g();

There are certain situations where we do get errors for redefining classes. FunctionTypeBuilder throws an error when the constructor signatures are different.
If the second class has a supertype, the supertype doesn't get put into the actual FunctionType, but it does result in a $jscomp.inherits() call that causes an error if it's incompatible with the first definition's superclass.
It's difficult to do this correctly for ES5-style classes because we don't have a single point that declares the class/properties, but prototype properties potentially scattered throughout the code. This could be easier for ES6-style classes because there is a single CLASS node representing the class declaration. We could check for structural compatibility there.

Yes, this does appear to be a problem (tested here). I would guess the problem might be something like this: somewhere in the closure compiler source code, classes are additive accumulated. Then, the solution is to instead only use the last class assignment to a variable for its properties instead of accumulating the properties.

Created Google internal issue https://b.corp.google.com/issues/140735194, since I just ran into this again.
https://closure-compiler-debugger.appspot.com/#input0%3Dclass%2520ParentA%2520%257B%257D%250Aclass%2520ParentB%2520%257B%257D%250A%250Alet%2520Klazz%253B%250A%250Aif%2520(true)%2520%257B%250A%2520%2520Klazz%2520%253D%2520class%2520extends%2520ParentA%2520%257B%257D%253B%250A%257D%2520else%2520%257B%250A%2520%2520Klazz%2520%253D%2520class%2520extends%2520ParentB%2520%257B%257D%253B%250A%257D%26input1%26conformanceConfig%26externs%26refasterjs-template%26CHECK_TYPES%3Dtrue%26CLOSURE_PASS%3Dtrue%26PRESERVE_TYPE_ANNOTATIONS%3Dtrue%26PRETTY_PRINT%3Dtrue

authors: The-Peppester lauraharker

repo: google/closure-compiler


text:
Enable GitHub Matrix Strategy for Golang Versions

This change  enables utilization Matrix strategy for our workflows.
This allows for comprehensive testing and validation of our codebase against various Golang versions.
Benefits:

forward or backward compatibility
identifying Depredations

for tech details please check
https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs

This feature helped find compatibility issues with 1.18 version .
This feature is tested also against go 1.20 for forward compatibility ,and the checks was successful .
This means the current repo is ready to upgrade for go 1.20 .

I closed this issue , since I found way to test actions locally https://blog.logrocket.com/guide-using-act-github-actions/

repo: google/cloud-android-orchestration


text:
Segfault when compiling constant structs with pointers to constant structs

I'm working on some unnamed spir-v tooling, and hit a really tough case to compile. So, I figured I'd look at other tools and see how they handle it... and now I'm submitting this! :P
__constant static struct A {
    int f;
} a = { 1 };

__constant static struct B {
    __constant struct A* f;
} b = { &a };

__constant static struct C {
    __constant struct B* f;
} c = { &b };

__kernel void foo(__global int* data) {
    *data += c.f->f->f;
}

when compiled, produces a segfault.
> clspv asdf.cl -o asdf.spv
<badref> = internal addrspace(2) constant %struct.A fish: “clspv asdf.cl -o asdf.spv” terminated by signal SIGSEGV (Address boundary error)

Something to note is that you need three structs to trigger the error - if you change the entry point to *data += b.f->f;, no segfault occurs (and a "c is unused" warning).

For some additional context, SPIRV-LLVM-Translator also fails to compile the above sample (with clang -cc1 -triple spir -cl-std=CL1.2 asdf.cl -O0 -emit-llvm-bc -o test.bc && llvm-spirv test.bc -o test.spv) - but it fails by producing invalid spir-v, it includes an OpVariable reference in an OpConstantComposite.

Thanks for the bug report. Unfortunately, clspv can't handle this case due to restrictions on shaders. This particular case might be workable, but it quickly becomes intractable. That said, the compiler should produce a real error message.

This is not segfaulting anymore and produces correct spirv.

authors: alan-baker khyperia rjodinchr

repo: google/clspv


text:
Alternate VFS question

Howdy!
Just a thought, in case the option wasn't explored or considered -
have you considered using a 9p virtual filesystem implementation instead of FUSE?
I ask because it supports partial file reads, has a driver in the linux kernel, and and is network mountable - so machines who want to mount a container can just mount <networkip> /containers or the like, assuming the server is posting the 9p FS on a port.
It may let you cut out the http requests, depending on how easy it is to access containers without going through the registry directly. You'd also only need to install software on the registry server - nothing would be needed client-side, since linux already has the driver.
Just a thought from taking a glance - my apologies if it's not applicable, and thanks for the project!

I'm not sure what that'd buy us, honestly.
The whole point of this is to put something client-side so I don't need to modify the registry (gcr.io) and install software there.
FUSE also supports partial file reads and we're already using that and efficiently batching minimal HTTP requests.

Ah, gotcha. I missed that there was a desire to avoid software on the server-side, and had thought from the readme that the HTML requests were considered a bit of a speed concern - but it makes sense that if you're batching them, it should work out. Thanks!

authors: bradfitz marzhall

repo: google/crfs


text:
Package for Debian

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=803413

The package has been accepted to Debian unstable (see bug link).
Big thanks to @cklin

woot!

https://packages.debian.org/sid/google-cloud-print-connector

Any plans to submit packages for other architectures?

Yes, I need to find out what's wrong with the others.

Further updates will belong to the Debian tracker

authors: jacobmarble jay0lee leizleiz

repo: google/cups-connector


text:
Updated name and bio in akitikkx.json

Updated the name and bio fields in config/authors/akitikkx.json

Going to attempt to resolve the CLA email address issue in a separate PR

repo: google/devlibrary


text:
gemodifyimageryproject deletes all existing resources from a project

Describe the bug
I have these resources up in a project:

After using this bash command:
gemodifyimageryproject -o Project/project --maxleveloverride 10 Source/i500
It seems that all of the other resources have disappeared (excluding the resource I have modified), as the following screenshot shows:

To Reproduce

Create a project
Add resources to it and build it
Use the CLI command to modify it, see what happens.

Expected behavior
gemodifyimageryproject should modify only the given resources.
Desktop

Server OS: Ubuntu 18.04,  Fusion runs on 16.04 docker machine.
Client OS: Same as server.

Maybe it somehow related to this file, specifically this line
P.S: any tips on how to compile Fusion for development environments? As for now I rebuild for each line I change (which takes huge amount of time).

Maybe it somehow related to this file, specifically this line
P.S: any tips on how to compile Fusion for development environments? As for now I rebuild for each change I make (which takes huge amount of time).

repo: google/earthenterprise


text:
Revision token issues shouldn't result in a 5xx error

Currently it does
/kind bug

/kind good-first-issue

Sample logs
2020-08-04T03:36:13.331056Z DEBUG SERVER - Current day keys are not being embargoed. E
2020-08-04T03:36:13.346488Z attempt to revise key not in revision token. E
2020-08-04T03:36:13.348433Z error writing exposure record: attempt to revise key not in revision token. E
  undefined

stacktrace: "github.com/google/exposure-notifications-server/internal/publish.(*publishHandler).handleRequest
	github.com/google/exposure-notifications-server/internal/publish/publish.go:239
github.com/google/exposure-notifications-server/internal/publish.(*publishHandler).ServeHTTP.func1
	github.com/google/exposure-notifications-server/internal/publish/publish.go:282
net/http.HandlerFunc.ServeHTTP
	net/http/server.go:2041
github.com/mikehelmick/go-chaff.(*Tracker).HandleTrack.func1
	github.com/mikehelmick/go-chaff@v0.3.0/tracker.go:212
net/http.HandlerFunc.ServeHTTP
	net/http/server.go:2041
github.com/google/exposure-notifications-server/internal/publish.(*publishHandler).ServeHTTP
	github.com/google/exposure-notifications-server/internal/publish/publish.go:298
net/http.(*ServeMux).ServeHTTP
	net/http/server.go:2416
go.opencensus.io/plugin/ochttp.(*Handler).ServeHTTP
	go.opencensus.io@v0.22.4/plugin/ochttp/server.go:92
net/http.serverHandler.ServeHTTP
	net/http/server.go:2836
net/http.(*conn).serve
	net/http/server.go:1924"

/assign
put up a short term fix so that bypass works
need to add tests for bypass
and make sure that 400 level errors don't result in 500 error codes

repo: google/exposure-notifications-server


text:
Fixes R4 extension support in Bunsen

Description of what I changed

This fixes #286 baring #560.
E2E test

TESTED:
Beside the new unit-tests that are added (or to be precise copied from Bunsen STU3 support) I also manually added "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient" in lieu of "Patient" when creating AvroConverter and could see extension fields in the generated Parquet files. Here is a snapshot from parquet-tools:

Checklist: I completed these to help reviewers :)

[x] I have read and will follow the review process.

[x] I am familiar with Google Style Guides for the language I have coded in.
No? Please take some time and review Java and Python style guides.

[x] My IDE is configured to follow the Google code styles.
No? Unsure? -> configure your IDE.

[x] I have added tests to cover my changes. (If you refactored existing code that was well tested you do not have to add tests)

[x] I ran mvn clean package right before creating this pull request and added all formatting changes to my commit.

[x] All new and existing tests passed.

[x] My pull request is based on the latest changes of the master branch.
No? Unsure? -> execute command git pull --rebase upstream master

Thanks Bashir! Changes look good to me. Just couple for minor comments.

repo: google/fhir-data-pipes


text:
is there anyone who use filament as a lib for another android project？

is there anyone who use filament as a lib for another android project？
my required：
(1) use filament  as a lib for my another project
(2)my android project  use java not kt;
(3)have some exaples or doc for use filament
or through CMakeList add filament sources to my project.
anyone who can give me a tutorials?

You can find several samples for Android in android/samples. These samples include the library project directly, instead you'll want to add the AAR as a library (see https://stackoverflow.com/questions/16682847/how-to-manually-include-external-aar-package-using-new-gradle-android-build-syst for instance).
The samples are written in Kotlin but call the Java APIs, there's nothing fundamentally different there.

authors: jaccen romainguy

repo: google/filament


text:
Build Error:invalid argument '-std=c++14' not allowed with 'Objective-C'

I used command "./build.sh -p desktop -i release" to build filament, but it always tells "invalid argument '-std=c++14' not allowed with 'Objective-C'" error.
I have tried Xcode version 10.0, 11.0-beta, 11.2-beta, and MacOS 10.14, 10.15, but it didn't work.
Describe the bug
[740/1130] Building CXX object third_p.../file/cocoa/SDL_rwopsbundlesupport.m.o
FAILED: third_party/libsdl2/tnt/CMakeFiles/sdl2.dir//src/file/cocoa/SDL_rwopsbundlesupport.m.o
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -DFILAMENT_DRIVER_SUPPORTS_VULKAN -DFILAMENT_SUPPORTS_METAL -D_THREAD_SAFE -Dsdl2_EXPORTS -I../../third_party/libsdl2/tnt/../src/video/khronos -I../../third_party/libsdl2/tnt/../include -std=c++14 -fstrict-aliasing -Wno-unknown-pragmas -Wno-unused-function -fcolor-diagnostics -O3 -DNDEBUG -fomit-frame-pointer -ffunction-sections -fdata-sections -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -fPIC   -msse2 -msse -mmmx -Wno-unused-variable -Wno-deprecated-declarations -Wno-switch -Wno-tautological-pointer-compare -Wno-parentheses-equality -fvisibility=hidden -MD -MT third_party/libsdl2/tnt/CMakeFiles/sdl2.dir//src/file/cocoa/SDL_rwopsbundlesupport.m.o -MF third_party/libsdl2/tnt/CMakeFiles/sdl2.dir//src/file/cocoa/SDL_rwopsbundlesupport.m.o.d -o third_party/libsdl2/tnt/CMakeFiles/sdl2.dir//src/file/cocoa/SDL_rwopsbundlesupport.m.o -c ../../third_party/libsdl2/src/file/cocoa/SDL_rwopsbundlesupport.m
error: invalid argument '-std=c++14' not allowed with 'Objective-C'
[753/1130] Building CXX object third_p...e/Importer/StepFile/StepFileGen1.cpp.o
ninja: build stopped: subcommand failed.
Tool version

cmake:3.16.0-rc1
ninja:1.9.0

Well, I use brew to install cmake, and problem is solved!

Well, I use brew to install cmake(version is 3.15.4), and the problem is solved!


text:
Improve godocs based on my experiences

I'd like to open a PR with some more clarification around RepositoryContent functions. I misunderstood when I needed to call Decode() and I still confused on when someone might call String(). If others agree, I'd like to capture a few more notes in the comments so godocs captures it.
Thoughts?
Thanks again for the help on Slack @willnorris :+1:

sounds good to me.  When I was looking at that myself, I also thought that the Content field should probably be documented more clearly.  I also wonder if it's always base64 encoded, or only sometimes.  I wonder if Decode() should always return the content, regardless of encoding.  If it's not encoded at all, then it should just return the plain bytes.  In which case "Decode" might not be the best name for that, but it's probably not worth changing at this point.

Sounds good. +1 to not worrying about the naming convention and I can't vouch for any other return types. Might be nice to get some test coverage there. I'll open a PR with some additional notes while it's fresh in my mind.
Is there a use case for needing String() that I haven't seen? I want to add a little explanation there too.

On Wed, Mar 30, 2016 at 11:13 AM, Matt Brender notifications@github.com
wrote:

Is there a use case for needing String() that I haven't seen? I want to
add a little explanation there too.

Mostly just debugging.

authors: mjbrender willnorris

repo: google/go-github


text:
Support go1.13

Add support for go1.13 and bump Travis CI tests from 1.11 to 1.12 and 1.13.

You actually don't need to add 1.13 explicitly... the "1.x" version will always test the latest.   So what I've been doing is test master plus the latest two version, with "1.x" always capturing the most recent version.  So this should really now just be:
go:
 - "1.x"
 - "1.12.x"
 - "master"

I'd rather not go beyond these three, primarily to keep our build times down.

Thank you, @willnorris!
I'll delete that line.

authors: gmlewis willnorris


text:
Escape # in CompareCommits base and head refs

This change will fix #1642 by replacig # with %23 in the base and head refs which are required for comparing commits.
Fixes #1642.

Hi @gmlewis , I have added the changes you requested. Please let me know if it's okay now.
Thank you

Thank you, @wesleimp !
Merging.

This, unfortunately, causes problems that I should have caught. Reverting.


text:
Support 'dataWrapper' feature for received data

stephen@sock.org.uk on 8 Jul 2012 at 10:47:
What steps will reproduce the problem?
1. Make a request for Location or LocationFeed against the Latitude v1 API

What is the expected output? What do you see instead?
The API call returns the zero value for any requested resource.

What version of the product are you using? On what operating system?
Revision: f49294b59cd7

Please provide any additional information below.

The Latitude v1 API has the 'dataWrapper' feature. The Go API client seems to
support this feature when encoding data to send to an API, but not (unless I've
misunderstood what's going on) when receiving data from an API.

I always get the zero value when making a request against this API because I'm
receiving JSON of the form:

  {"data":{"kind":"...","items":"..."}}

rather than

  {"kind":"...","items":"..."}

The code generated by google-api-go-generator seems to expect the latter form,
event if the 'dataWrapper' feature is enabled.

I'm using this slightly ugly patch to work around this - I've only tried it
with the Latitude API, so it may not work elsewhere:

diff -r f49294b59cd7 google-api-go-generator/gen.go
--- a/google-api-go-generator/gen.go    Fri May 11 15:38:15 2012 +1000
+++ b/google-api-go-generator/gen.go    Sun Jul 08 23:44:39 2012 +0100
@@ -1043,6 +1043,11 @@
        pn("if err := googleapi.CheckResponse(res); err != nil { return %serr }", nilRet)
        if retTypeComma == "" {
                pn("return nil")
+       } else if a.needsDataWrapper() {
+               s := responseType(meth.m)[1:]
+               pn("ret := &struct{ Data *%s `json:data,omitempty`}{Data:
new(%s)}", s, s)
+               pn("if err := json.NewDecoder(res.Body).Decode(ret); err != nil
{ return nil, err }")
+               pn("return ret.Data, nil")
        } else {
                pn("ret := new(%s)", responseType(meth.m)[1:])
                pn("if err := json.NewDecoder(res.Body).Decode(ret); err != nil { return nil, err }")

Successfully auto-migrated from code.google.com:
https://code.google.com/p/google-api-go-client/issues/detail?id=11

The Latitude API no longer exists, so this issue can not be tested.
If this issue still exists with other APIs, please provide a simple test app that demonstrates the problem and re-open the issue.
Closing.

repo: google/google-api-go-client


text:
do something with enums

bradfitz@google.com on 25 Aug 2011 at 9:10:
The JSON has enums described, showing possible values.

Should probably promote to documentation at least, if not generate types or
run-time checks on setters.

gmlewis@google.com on 29 Mar 2015 at 2:56:
Closed - migrated to github:
https://github.com/google/google-api-go-client/issues/3

Status changed to WontFix.

gmlewis@google.com on 29 Mar 2015 at 10:45:
Reopening issue for auto-migration to Github.

Status changed to Accepted.


text:
Always got 401 Login Required in analytics

Everytime I use this module, I got error Login required (401)
Here is my code
var GoogleAPI    = require('googleapis');
var OAuth2         = GoogleAPI.auth.OAuth2;
var oauth2Client = new OAuth2(config.google.clientID, config.google.clientSecret, config.google.callbackUrl)

var blogAccessToken = _.result(_.find(req.user.tokens, {'kind': 'blog'}),  'accessToken');
oauth2Client.setCredentials({
  access_token: blogAccessToken
});

var analytics = GoogleAPI.analytics('v3');
analytics.management.accounts.list({key: config.google.apiKey}, function(err, response) {
  console.log(response)
  console.log(err)
});

Is there any wrong with my code? Please help me

You probably want to authenticate with your oauth client instead of the key. Use { auth: oauth2Client } in your request instead of { key: apiKey }

authors: hariawan ryanseys

repo: google/google-api-nodejs-client


text:
Http/s Health Check resources generated incorrectly

The current HttpHealthCheck resource being used for the insert/update_http_health_check method in generated/google/apis/compute_v1/service.rb seems to be a check request resource rather than an actual check object resource.
The HttpHealthCheck attributes (using update method for brevity) look like:
https://github.com/google/google-api-ruby-client/blob/a41d6b00876cee0e40a8dcad575d981236136a3d/generated/google/apis/compute_v1/classes.rb#L5263-L5271
The compute docs for HttpHealthCheck shows a resource like:
"""
{
"kind": "compute#httpHealthCheck",
"id": unsigned long,
"creationTimestamp": string,
"name": string,
"description": string,
"host": string,
"requestPath": string,
"port": integer,
"checkIntervalSec": integer,
"timeoutSec": integer,
"unhealthyThreshold": integer,
"healthyThreshold": integer,
"selfLink": string
}
"""
Some key resource fields that are missing from the ruby client class are thresholds, timeouts, etc. I'm not sure from what object/version the HttpHealthCheck class is being generated but it currently does not allow for proper Http(s)HealthCheck insert/update as is.

Nevermind! I found the right definition here
https://github.com/google/google-api-ruby-client/blob/master/generated/google/apis/compute_v1/classes.rb#L5607-L5709
Turns out the first HttpHealthCheck class is a generated nested resource in top-level HealthCheck resource. It seems like it's then overridden/combined with the top-level HttpHealthCheck resource? This seems questionable, but I guess it works?

repo: google/google-api-ruby-client


text:
afpacket corss compile failed.

The afpacket's example cross compile failed. Using the afpacket example: https://raw.githubusercontent.com/google/gopacket/master/examples/afpacket/afpacket.go
go build afpacket.go works fine, but GOOS=linux GOARM=7 GOARCH=arm go build afpacket.go failed with following error:
# github.com/google/gopacket/afpacket
../.go/src/github.com/google/gopacket/afpacket/options.go:176:19: undefined: pageSize
../.go/src/github.com/google/gopacket/afpacket/options.go:177:85: undefined: pageSize
# github.com/google/gopacket/pcap
../.go/src/github.com/google/gopacket/pcap/pcap.go:30:22: undefined: pcapErrorNotActivated
../.go/src/github.com/google/gopacket/pcap/pcap.go:52:17: undefined: pcapTPtr
../.go/src/github.com/google/gopacket/pcap/pcap.go:64:10: undefined: pcapPkthdr

any news how to fix this?

I am also getting this issue when trying to static build:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0
same errors:
# github.com/google/gopacket/afpacket
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/afpacket/options.go:176:19: undefined: pageSize
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/afpacket/options.go:177:85: undefined: pageSize
# github.com/google/gopacket/pcap
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/pcap/pcap.go:30:22: undefined: pcapErrorNotActivated
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/pcap/pcap.go:52:17: undefined: pcapTPtr
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/pcap/pcap.go:64:10: undefined: pcapPkthdr
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/pcap/pcap.go:103:6: undefined: pcapBpfProgram
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/pcap/pcap.go:110:7: undefined: pcapPkthdr
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/pcap/pcap.go:268:33: undefined: pcapErrorActivated
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/pcap/pcap.go:269:33: undefined: pcapWarningPromisc
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/pcap/pcap.go:270:33: undefined: pcapErrorNoSuchDevice
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/pcap/pcap.go:271:33: undefined: pcapErrorDenied
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/pcap/pcap.go:748:14: undefined: pcapTPtr
../../go/pkg/mod/github.com/google/gopacket@v1.1.19/pcap/pcap.go:271:33: too many errors

authors: baryluk jackesdavid sbilly

repo: google/gopacket


text:
[Code health] Consider refactoring runTest(testDispatcher) in tests

testDispatcher can be injected into BaseHiltTest instead
Helper fun runWithTestDispatcher can be added to BaseHiltTest and used in tests instead of runTest(testDispatcher).

@JSunde @scolsen @shobhitagarwal1612 Wdyt?

SGTM

authors: JSunde gino-m

repo: google/ground-android


text:
Lattigo: BGV: add relinearize/mod reduce/rotate

This introduces the keyswitching/modulus switching ability thus we are able to do relinearize/rotate.
Check tests/Dialect/Lattigo/Emitters/emit_lattigo.mlir for detail usage of them. It runs and get a correct result.
Also, the following input can be used with current secret-insert-mgmt-bgv to get a correct management
func.func @add(%arg0: tensor<4xi16>, %arg1: tensor<4xi16>) -> tensor<4xi16> {
  %0 = arith.addi %arg0, %arg1 : tensor<4xi16>
  %1 = arith.muli %0, %arg1 : tensor<4xi16>
  %c1 = arith.constant 1 : index
  %2 = tensor_ext.rotate %1, %c1 : tensor<4xi16>, index
  return %2 : tensor<4xi16>
}

With --secretize --mlir-to-secret-arithmetic --secret-insert-mgmt-bgv --secret-distribute-generic --secret-to-bgv=poly-mod-degree=4 --bgv-to-lattigo --cse we get
  func.func @add(%arg0: !lattigo.bgv.evaluator, %arg1: !lattigo.rlwe.ciphertext, %arg2: !lattigo.rlwe.ciphertext) -> !lattigo.rlwe.ciphertext {
    %0 = lattigo.bgv.add %arg0, %arg1, %arg2 : (!lattigo.bgv.evaluator, !lattigo.rlwe.ciphertext, !lattigo.rlwe.ciphertext) -> !lattigo.rlwe.ciphertext
    %1 = lattigo.bgv.mul %arg0, %0, %arg2 : (!lattigo.bgv.evaluator, !lattigo.rlwe.ciphertext, !lattigo.rlwe.ciphertext) -> !lattigo.rlwe.ciphertext
    %2 = lattigo.bgv.relinearize %arg0, %1 : (!lattigo.bgv.evaluator, !lattigo.rlwe.ciphertext) -> !lattigo.rlwe.ciphertext
    %3 = lattigo.bgv.rotate_columns %arg0, %2 {offset = 1 : index} : (!lattigo.bgv.evaluator, !lattigo.rlwe.ciphertext) -> !lattigo.rlwe.ciphertext
    %4 = lattigo.bgv.rescale %arg0, %3 : (!lattigo.bgv.evaluator, !lattigo.rlwe.ciphertext) -> !lattigo.rlwe.ciphertext
    return %4 : !lattigo.rlwe.ciphertext
  }

It can correctly translate to GO code and runs with correct result with a main function.
Note that --lwe-add-client-interface still does not work as I do not have a lowering for that. Thus we do not have --mlir-to-lattigo-bgv for now. Will do so in future PR.
Discussion

Rotation for BGV in lattigo is exposed as RotateColumns and RotateRows. If we want to get a correct rotation for any index (currently only works for index 1), we have to compute the correct way to use these API.
GaloisKey are generated using the x -> x^i (called galEl), instead of index. As we can see in the code, I generated the GaloisKey for galEl 5 but then for rotation I used the index 1. If not generating with correct galois key, we get the following

panic: cannot apply Automorphism: GaloisKey[5] is nil: key for galEl 5 = 5^{1} key is missing

Addressed the review comments.

Test fixed.

repo: google/heir


text:
No issue - just  a question

I have compiled hongfuzz on Ubuntu 17.10 (works flawlsesy if you use the prerequisites from the Docker file). However, I can't figure out exactly what is the interface between hongfuzz and headfuzz (for network fuzzing). In what way must headfuzz save the file it creates?
I feel I am missing something ...

Please close. Found the problem, the readme is wrong.

repo: google/honggfuzz


text:
Add snapshot tests for AlertDialogAlert

Add snapshot tests for AlertDialogAlert component which was added in https://github.com/google/horologist/pull/718. An attempt to add the tests was made in that PR but the snapshots were all generated with blank content.
I think we might have to implement a solution for ScalingLazyListState similar to what was done for ScalingLazyColumnState  with PositionedState and pass that as param to scrollState param in Alert component from compose material.

Closing as low priority.

authors: luizgrp yschimke

repo: google/horologist


text:
Add measurement and view descriptors for client/server started/finished and res/req count.

Update the name of measurement and view descriptors based on our new naming convention;
Add measurement and view descriptors for started/finished/request/response count on client and server;
Add unit tests for new descriptors.

Codecov Report

Merging #176 into master will increase coverage by 0.25%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master     #176      +/-   ##
============================================
+ Coverage     94.33%   94.58%   +0.25%
  Complexity      369      369
============================================
  Files            50       50
  Lines          1076     1126      +50
  Branches         66       66
============================================
+ Hits           1015     1065      +50
  Misses           43       43
  Partials         18       18

Impacted Files
Coverage Δ
Complexity Δ

...com/google/instrumentation/stats/RpcConstants.java
100% <100%> (ø)
2 <0> (ø)
:arrow_down:

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 c6a59fb...824f566. Read the comment docs.

repo: google/instrumentation-java


text:
Remove iree-translate.

All of the functionality has been superceded by iree-compile. A few
remaining features were added in this PR to normalize.
I thought this would be sufficient to nuke iree/compiler/Translations
and friends, but these are being held in place now by the
custom-translate sample, which is the long tail.
I suspect that the right way forward there is to create more of an API
around iree-compile (it has a little one now) in order to customize it
(i.e. extending dialect registration, etc). Can look at that in a
followup.

Nit: please fix missing trailing newlines and buildifier failures

Yeah, this isn't done - I just got it to the point of the code changes. Will finish it once Scott lands the tools move (since I'll need to basically redo a lot of the build changes).

Nit: please fix missing trailing newlines and buildifier failures

Yeah, this isn't done - I just got it to the point of the code changes. Will finish it once Scott lands the tools move (since I'll need to basically redo a lot of the build changes).

Tools move is complete (https://github.com/google/iree/pull/9135). I've got my eye moving/refactoring the iree/test/ directory next, but I think this PR is safe to pick up again now.

authors: ScottTodd stellaraccident

repo: google/iree


text:
Closes: #1

Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py.
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

@googlebot I signed it!

@googlebot I fixed it.

@googlebot I fixed it.

repo: google/it-cert-automation-practice


text:
Closes: #1

Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py.
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

testing


text:
Closes: #1

Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py.
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

@googlebot I signed it!


text:
Updated validations.py python script.

Resolved error in name
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

Added a if condition to check for a valid character for the name .


text:
Allow compiling in WHITESPACE mode

We're using WHITESPACE instead of BUNDLE because bundle doesn't support source maps.
(That doesn't fix source maps for j2cl code, but at least source maps for non-j2cl code still works)

J2CL already suppresses this as file level:
https://github.com/google/j2cl/blob/d764bd72cdc5fcd678ed2f9ca9bab4dcb628f81e/transpiler/java/com/google/j2cl/generator/JavaScriptImplGenerator.java#L117
Could you clarify why you need this here? Maybe it is your own file?

As a possible alternative, we made a small patch to BUNDLE mode which adds sourcemaps (example running at https://colinalworth.com/boxes-and-lines-j2cl-devmode/), since we found running closure in BUNDLE mode to be rather faster than WHITESPACE (no need to fully parse the AST, just look for dependencies). We have not kept this up to date, since upstream closure removed the PersistentInputStore feature, which we also used to allow for keeping unchanged files and their dependencies cached in closure, but could look at trying to rebase it if there was interest.
https://github.com/Vertispan/closure-compiler/commit/0c394bfb7445a20f1edbc3ab4468784601c34b21

I don't have the logs handy at the moment, but was definitely getting this error for j2cl's internal packages without this change. I'm not sure why the suppression inside the file wouldn't work.
@niloc132 if we can get sourcemaps working in bundle mode that sounds much better. Whitespace compilation is still pretty slow.

Reproduced the issue and filed https://github.com/google/j2cl/issues/40

authors: gkdn niloc132 ribrdb


text:
Inner Classes and inner Enums are not found during translation

I read the comments from @tomball here (https://groups.google.com/forum/#!searchin/j2objc-discuss/translate$20jar/j2objc-discuss/FwXUxUzh7Ts/vu09QLo5MuMJ).I tried to use j2objc to translate my classes as well as dependent classes using the --build-closure flag here is the command I use:
j2obc --no-package-directories -use-arc -d build/classes -sourcepath src/main/java:libSrc/javax.inject-1-sources.jar:libSrc/dagger-2.0-SNAPSHOT-sources.jar:libSrc/json-20140107-sources.jar src/main/java/com/example/SomeClassX.java src/main/java/com/example/ApplicationComponent.java src/main/java/com/example/ApplicationModule.java

Translation of classes works fine. Translation of dependent classes does also work, except that I get the following warnings:
warning: could not find source path for dagger.Provides.Type
warning: could not find source path for com.example.Dagger_ApplicationComponent.Builder
warning: could not find source path for org.json.JSONObject.Null

These classes and types do exist on the source path. The Problem is that these classes are inner classes and inner types.
For example:
public class JSONObject {
       private static final class Null { ... }
      ...
}

and
@Documented @Target(METHOD) @Retention(RUNTIME)
public @interface Provides {
    enum Type { ... }
    ...
}

Somehow j2objcdoes not find inner classes and inner types.

As long as I get these warnings compiling the generated code in Xcode leads to errors like some file not found.

I created a demo project for this case here: https://github.com/confile/j2objc-inner-classes

I have the same problem translating Dagger2. Translation throws warnings for inner classes which could not be found.

The @Provides annotation of dagger raises a problem in j2objc.

Does this issue occur in 0.9.6.1, or are you building from up-to-date sources?

Yes I compiles the latest source from git. it did not work. I created a simpler example here:
https://groups.google.com/forum/#!topic/j2objc-discuss/eJhODNl3wtM

For me the error occurs with 0.9.6.1.

A fix is pending code review.
On Tue, Apr 7, 2015 at 1:51 PM lilianes notifications@github.com wrote:

For me the error occurs with 0.9.6.1.
—
Reply to this email directly or view it on GitHub
https://github.com/google/j2objc/issues/513#issuecomment-90729121.

@tomball That is great thanks. I cannot see the fix yet.

Fixed in open-source.

authors: confile kstanger lilianes tomball


text:
Default lax.scan XS value as None

See #20855

@jakevdp Here's a PR that defines a default None value for the xs parameter of lax.scan.

The diff is surprisingly large – could you try rebasing against an updated main branch?

Oh, it looks like you ran some sort of autoformatter on the file. Let's avoid that here, please.

@jakevdp Yes, sorry. I have fixed the format

Thanks! Part of this change will be adding a test of the new default. Probably a new test in lax_control_flow_test.py would be the best option.

I think we're going to go with #20901 on this, as that is the user who initially raised the issue and offered to create the PR – thanks!

authors: LouisGobert jakevdp

repo: google/jax


text:
Continuous Integration Server [phab:T33]

Created by schroederc at 2015-04-02 16:32:47:

schroederc wrote at 2015-06-17 23:06:15:
https://jenkins-dot-kythe-repo.appspot.com/ has been working for a while now.

revision #418
#424

repo: google/kythe


text:
Downgrading multiple items at once

Just resurfaced a known issue with downgrading. It will only downgrade the first found component. We need to loop over and find all components possible and downgrade them all at once.
No time to land this properly before 1.0.1, but is a P0 for the next release of any kind.
Example: Something with ,MaterialButton,MaterialRipple will only have MaterialRipple downgraded on the first pass. Leading to downgrade needing to be called again to get MaterialButton downgraded.

This should now be fixed.

authors: Garbee sgomes

repo: google/material-design-lite


text:
Component documentation ToC

Component pages should have a table of contents, particularly in categories with multiple components.
Here's the table of contents in the getting started guide, for reference:

Closing this, as documentation will be redone from scratch.


text:
How to use Masonry.js in it?

i try to use masonry but not work, has anyone use it successfully?

Please use StackOverflow for support and integration assistance. This tracker is only for problems with the code provided by Material Design Lite.
As this is a request for help integrating third party code with MDL it is out of scope for the issue tracker.
Thank you.

authors: Garbee godsplans


text:
manual turntable rotation

Fixes #1541
Now the resetTurntableRotation() method takes an option argument for the desired value in radians. This will allow scriptable rotation relative to the environment.

I am trying to create an example of this.
So I have this code here on this link,
https://thecela.com/configurator/koi/GLTF/
What I am trying to do is, when user presses R or any key for example, it should only move environment map or the lighting in the background and not the model. I don't see any changes, but I am still using the cdn version of model viewer though.

As I said, you either have to wait a month for the next release or build it and serve it yourself. Follow our README instructions if you'd like to test now.

ok thanks

One more thing I wanted to share, I know that this feature will available in the next release, but it would be great to have an example of this under the lighting section of examples just like you did for the pan example. That was great. If you need I can again share the code here. My idea of the implementation was. When the user press shift + left click drag left or right, it will rotate the environment map.

@dhruvadhia1 If you can fork this repro, create your own branch with this new example, then push it and open a pull request here, that would be fantastic! That's the normal Git flow for contributing and allows you to sign a CLA that means I can legally accept your code. You'll want to add your example to this file: https://github.com/google/model-viewer/blob/master/packages/modelviewer.dev/examples/staging-and-camera-control.html

@elalish kindly check, I think i made all the steps as you suggested and added the code in examples. You will need to review it. The code is in accordance to our discussion earlier.

repo: google/model-viewer


text:
Update Java to Java 11

Java 8 will not receive any new security update. We should switch all our builds/deliveries to Java 11.
Todo list

[ ] Makefile java.mk to update
[ ] CMakelists.txt to update

[ ] Maven pom.xml to update

[ ] CI(make): Bump Java in Dockerfile
[ ] CI(cmake): Bump Java in Dockerfile
[ ] Tools(docker): Update Java in Dockerfile
[ ] CI: Update travis jobs
[ ] CI: Update appveyor jobs
[ ] CI: Update github workflow jobs

ref: https://www.oracle.com/java/technologies/java-se-support-roadmap.html

Since I investigated possibility to move to java 11 few months ago, I can give you some comments.
A lot of java libraries is not ready for java8+, even Oracle itself modified libraries months after release of java11.
Java11 is lts version, supported by Oracle for 3 years that means until September 2021 without some extended support.
Other companies like Redhat (one of major player in openjdk) for example have different roadmaps.
https://access.redhat.com/articles/1299013
At this time, support for java8 should end in 2026 and java11 in 2024.
My recommendation is to currently release java code with java8 compatibility, for example in maven should be specified not only "target" but also "release" to guarantee api compatibility. And check whether there are some problems with java11 or java14. I think that or-tools use only swig library that claims no problems with new java versions.

Currently we use:
https://github.com/google/or-tools/blob/45770b833997f827d322e929b1ed4781c4e60d44/ortools/java/pom-local.xml.in#L51-L55
But I should replace it by:
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.8.0</version>
    <configuration>
        <release>11</release>
    </configuration>
</plugin>

JDK 11 use "Release" parameter instead of source/target.
IIRC SWIG is very conservative so it should generate wrapper to be compatible to java 8.

Unfortunately produced bytecode will not be compatible with java8 thanks release 11 and there’s a risk that some new language feature will be used in java part.
When you specify source, target and release to java8, you can compile and run it with java8 and java11. Only downside is that you cannot use new language features of java11 and some “hidden” packages like sun.* will be visible. Highly probably not problem in or-tools java code.

Even when specifying -target and -source you can't be sure it will work since code can still use recent implementation
see: http://openjdk.java.net/jeps/247
Currently we are facing this bug in Fedora Docker CI (Make and CMake)
see:

Docker Make (fedora, java) https://github.com/google/or-tools/runs/1449059456?check_suite_focus=true
Docker CMake (fedora, java) https://github.com/google/or-tools/runs/1449059746?check_suite_focus=true

BUT I suspect, it is some of our dependency in our Pom.xml to depend on Java 9+ without knowing it...
note: It seems, "someone" depend on java.nio.ByteBuffer.flip()Ljava/nio/ByteBuffer
Otherwise SWIG should generate Java 6 compatible code but since we are using custom %typemap we may depends on a more recent Java JDK (ed JDK 8 ?).

authors: Mizux gregy4 lperron

repo: google/or-tools


text:
Improve the Xpress interface and add dynamic loading of the Xpress library

We have been working on several improvements of the Xpress interface at RTE.
These include

the possibility to lazily load the Xpress library (like Gurobi) without the need of the header files during the compilation of Ortools
a first implementation to make use of callbacks in C++
implementation of OR-Tool's SetHint method into the XPRESS interface to suggest a feasible solution to Xpress
update to Xpress 9.0
allow for a better control on the log level of Xpress
implement the Write method, a specific exception is raised in case of failure
Xpress now looks for the standard environment variables that are set during the Xpress installation
Add new extraction and set method for LP basis for Xpress:
- MPSolver::GetFinalLpBasisInt,
- MPSolver::SetStartingLpBasisInt
add xpress specific tests that can be activated using the CMake flag BUILD_XPRESS_TEST_AND_EXAMPLES
- these tests can be run using the community licence of Xpress (bundled with the python installation)

RTE signed the Google CLA and @pet-mit and @sgatto are part of the CLA too.

If you look at the runners, they complain about a missing function (Xpress is correctly installed).

Thank you @lperron , I am new to bazel, Everything works fine using CMake.
I hope this commit fixes the Bazel builds.

The bazel build for MacOS and Linux seems fixed. Something was missing in linear_solver/BUILD.bazel file.
The amd64 Windows Bazel  seems broken on your main branch too.

The amd64 Windows Bazel  seems broken on your main branch too.

Protobuf bazel build script generate  too long path so few source files are missing :face_exhaling:  -> bazel windows CI is borken until bazel find a way to allow everyone to be able to build protobuf as a dependencies... -> you can safely ignore this job...

We would like tests to be colocated with the code.
So C++ tests in ortools/linear_solver (or examples/tests but we try to
remove this one), python and java tests in ortools/linear_solver/python|java
Thanks
Laurent Perron | Operations Research | @.*** | (33) 1 42 68 53
00
Le lun. 13 nov. 2023 à 10:22, Andrea Sgattoni @.***> a
écrit :

@.**** commented on this pull request.
On examples/xpress_tests/CMakeLists.txt
https://github.com/google/or-tools/pull/3966#discussion_r1390819871:
I can do it but
if the xpress-tests are inside a specific directory, if you're ok with it,
how should add them without adding a CMakeLists.txt?
—
Reply to this email directly, view it on GitHub
https://github.com/google/or-tools/pull/3966#discussion_r1390819871, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ACUPL3L6XYFLMWHNVQR7EZ3YEHRGRAVCNFSM6AAAAAA6SNT5GOVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTOMRWHA2TQMZUGI
.
You are receiving this because you were mentioned.Message ID:
@.***>

I know the basis status is not optimal.
I would still push for merging now.

I know the basis status is not optimal. I would still push for merging now.

Thanks @lperron ,
After checking the differences we realized that we changed the dynamic_library.h file in order to have a graceful exit if some Xpress functions are not found. This change would not be compatible with your implementation of the Gurobi interface and we are unable to propose a different solution for Gurobi (we have no way to test it).
We are checking internally (at RTE) for a different solution or in case mimic what you have done for Gurobi (having a fatal_error if any function is not_found).
We will correct this issue and push a final commit to remove the draft tag this week.
Would it be ok for you ?

Should I merge ?

authors: Mizux lperron sgatto


text:
Implement Rename Capture File

This adds a menu option to rename currently opened
capture file.
Bug: http://b/190473278
Test: Load file -> rename it -> close session, check that in the
Startup UI we have it in the list.

Hey, so during testing on windows I found that the target_label_ does not properly resize when the file name changes. This should be fixable by calling emit SizeChanged(); at the end of TargetLabel::SetFile().

authors: antonrohr dimitry-

repo: google/orbit


text:
Support pyproject.toml files

Currently OSV-Scanner does not support pyproject.toml files.
Example: https://github.com/huggingface/datatrove/blob/main/pyproject.toml
I am not familiar with how many projects use a pyproject.toml file for dependencies management so I can't speak to the impact of this enhancement. At the same time, it seems like an easy file to extract the dependencies from.

I think this falls under #416. We already do support many python package managers that use pyproject.toml files, e.g. Poetry, PDM.

authors: AdamKorcz another-rex

repo: google/osv-scanner


text:
Add missing OSV schema fields to vulnerability page

This change adds the following info to the vulnerability page:

purl: https://ossf.github.io/osv-schema/#affectedpackage-field
Severity: https://ossf.github.io/osv-schema/#severity-field
Credits: https://ossf.github.io/osv-schema/#credits-fields

resolves #2081
Regarding the second items on the issue:  per-range ecosystem/database_specific fields I left a question on the issue.

/gcbrun

authors: oliverchang zahraaalizadeh


text:
[Feature Request] tracker highlighting when mouse move over

Hi Perfetto Team,
Is it possible to add feature support for tracker hightlighting  when mouse floating on it so we can easily distinguish its names from adjacent ones, this will be very useful when we put many trackers together for analysis.

Can you expand a bit more. There are various part of the UI I am not 100% sure which one you are talking abut.
Maybe an annotated screenshot would help

Maybe a little example will put it more clear.
when user moving mouse over the tracker panel, the corresponding tracker area is highlighted, so that one can easily identify the tracker with the name on the left most.
similiar effect plrease refer in below link(horiztontal highlight).
http://www.webkaka.com/tutorial/html/2020/021970/Table_Highlight_Vertical_Horizontal/

I think we now display slice names on hover which I believe fixes this issue in a slightly different way.

authors: LalitMaganti horusli primiano

repo: google/perfetto


text:
How to catch all error?

When fusing all(), probably we want all our request to be successful. If anyone failed, It'll be invalid. Then we'll have our users to do something to make it valid again. So to save request, we'd want the users to apply all the necessary condition in order to complete the request, by showing all the error in all the required request. How can we do so?
Even if I use await(), it's still no use because it still throws the first error immediately.

Hi @EddieLukeAtmey,
Sounds like you may need to add a recover clause to each promise you're passing to all.
There's also retry if you can effectively recover a promise by retrying it.
Or maybe you can use any in stead of all and post-process the errors somehow, or simply report them and do not retry at all.
It's hard to say w/o understanding your particular use case deeper.
Thanks.

Hi @shoumikhin, thanks for the response.
My use case is like this:
I have 3 Requests: A, B, C. In order to complete the task in MyVC, they'll have to finish all the required conditions to request A, B, and C. The requests will be called simultaneously, and response when all done. That's why I'd use all().
However, the catch() only catch either one error in A, B, or C; Therefore I can't show all the errors to the users. If they failed all the conditions, they'd have to make the requests 3 times (A failed -> B failed -> C failed) * 3 req = 9 requests in total. That's a waste of resource, so I'd like to show all the errors at once if possible.
As you suggest, recover would solve the problem but it'll also create a lot of boilerplate code (each request make a recover() to resolve with an error msg or something and append it. But then, it's no much use for the catch().
Or if you could suggest any better way to solve this, thank you.

Why a request can fail? How do you recover it? Do you just retry it a few times and then given up?
Hopefully, you can factor out the request creation into a separate helper function and put the recover code over there to avoid boilerplate.
So you can use retry or recover for each of those 3 requests, and then leverage any instead of all to get all failed requests, despite you've tried to recover them.

You're right, I'd better refactor the error handling in the ServiceRequester instead.
We need 3 Promises, one of them is a lie, all of them are lies. If we want to catch() all lies, better merge 3 Promises into a bigger Promise and catch the error for only once.

authors: EddieLukeAtmey shoumikhin

repo: google/promises


text:
hashCode is problematic

The current implementation of hashCode in generated_message.dart hashes the values of the fields of the protobuf – https://github.com/dart-lang/dart-protobuf/blob/f821faf77a3d273255a76ea723a46f390d1a89f8/lib/src/protobuf/generated_message.dart#L291.  This prevents its use as a map key or in a set since a protobuf is mutable.  Perhaps the hashCode getter should not be abused this way and this functionality should be moved into a regular method (e.g. "hash()") to avoid this issue.  In the current state, it only makes sense if the protobuf itself is immutable.

You are right, but I think the solution is to avoid mutating protos that are used as keys to maps. For now this is up to the user, but perhaps we will add a freeze() method that prevents mutation.

You can now use GeneratedMessage.freeze when you need hashCode of a message to be stable.

authors: chirayuk osa1 skybrian


text:
WebkitMediaKeySession - MEDIA_KEYERR_DOMAIN

Have you read the Tutorials?
Yes
Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
3.1.1
Please ask your question
Hi
I am implement the FPS KSM service. When I use the shaka player as the client to test my KSM. I get a key error - code 6 (MEDIA_KEYERR_DOMAIN). I have setup the DRM configuration as mentioned in https://shaka-player-demo.appspot.com/docs/api/tutorial-fairplay.html
I tried other clients - shaka player, video JS player. All of them give me the same error.
I have tried different playlists, different certificates (developer certificate from apple and production certificate for my company).
I have tried searching for solution all over the web, but I could not find any solution.
Any idea what this error is and how to fix it?
Thanks Anand

If you could provide a manifest URL, we may be able to help more.  Since it happens in other players, it is probably a problem with your content.  Are you using an external display or AirPlay?  MEDIA_KEYERR_DOMAIN is an error from the browser, so you could just search for that and you may get some hints on what could be wrong.

@TheModMaker I think the problem was with the server certificate (or how it was read).  Once I got the correct certificate, it works.

authors: TheModMaker nanandn

repo: google/shaka-player


text:
refactor: Replace callbacks with events

Three classes (RegionTimeline, RegionObserver, and QualityObserver)
were all designed with callbacks instead of events.  A single callback
is inflexible compared to events, which allow multiple listeners.  We
already have a long-standing and robust event system, so why not use
it?
Issue #3949 (memory leak in DASH live streams with inband EventStream)

When this is merged, I can upload the final PR, which fixes the leak and adds/updates test cases.  Please take a look!

I fixed the things you pointed out.  Thank you for the feedback!  Please take another look.


text:
tf2 version

Tensorflow2 version of the lanczos algorithm for hessian approximation.

Thank you!
This PR was thoroughly reviewed internally, so merging without further comments.

authors: PForet yingusxiaous

repo: google/spectral-density


text:
pkg/host: incorrect check in enabling tun leads to panic

syzkaller revision: 095ef80678981c78c6726af6a3a50a7c8f667d52
Go version: go1.10.3 linux/amd64
In 06ece2ca663d0565d9e4cd932c4c2d86767a5396, tun enable check was changed from trying to open /dev/net/tun to simply checking if it exists in checkNetworkInjection(), but if there's an error opening it (ex. permission problem) then the executor would panic.  Sorry if this was intentional.  Thanks!

Panicing in obscure way late in execution is not intentional. We need more precise checks there.
But why do not you give it root access? Can you?

I am not sure because the syz-fuzzer/executor should be running as root since it looks like syz-manager is sshing into the qemu instance as root by tracing the log.  I tried following the instructions here to set up a clean build but the same issue is occurring.

What is the error you are seeing?

2018/06/25 20:12:06 fuzzer detected executor failure='executor 0: invalid status 0, exit status: exit status 67', retrying #5
spawned loop pid 3322
mkdir(/syzcgroup) failed: 17
mkdir(/syzcgroup/unified) failed: 17
mount(cgroup2) failed: 16
write(cgroup.subtree_control) failed: 22
mkdir(/syzcgroup/cpu) failed: 17
mount(cgroup cpu) failed: 2
write(/syzcgroup/cpu/cgroup.clone_children) failed: 2
mkdir(/syzcgroup/net) failed: 17
mount(cgroup net) failed: 2
write(/proc/sys/fs/binfmt_misc/register, syz0) failed: 17
write(/proc/sys/fs/binfmt_misc/register, syz1) failed: 17
tun: can't open /dev/net/tun
 (errno 19)
loop failed (errno 0)

authors: dvyukov ss-couchpotato

repo: google/syzkaller


text:
Polymer 3

Hi, Polymer 3 is set to be released and I wanted to know if there was any chance this repo was going to be updated to use it or can it be used with Polymer 3 already as it stands?

#17

@urdeveloper Thanks a lot for your contribution, very appreciated! Unfortunately, I'm quite busy with other projects at the moment, but hoping to find some time to review and merge your pull request soon.

authors: militeev trackleaf urdeveloper

repo: google/uniflow-polymer


text:
Refactor callers of useFocusHighlight() and useInputEventHandlers()

Context
Dependent on #8522.
Summary
Remove all usages of useFocusHighlight and useInputEventHandlers and replaces them with lighter weight callback refs inside each caller component.
Includes some behavioral changes for simplification:

Resetting highlight state: Reset after highlight animation ends in the component instead of useFocusOut
Canceling highlight effect: A single-use keydown listener in the callback ref (and only for text inputs) instead of this

Rationale:

Avoids the useEffect + ref problem in useFocusHighlight and useInputEventHandlers
Reduces number of active event listeners (e.g. useFocusOut adds a pointerdown to the document for each usage)
I've found it's hard to click on the highlighted element before the animation ends anyways, so click event can be removed for (2)

Relevant Technical Choices
See https://github.com/google/web-stories-wp/pull/8309#issuecomment-884624787 for context.
To-do

[ ] Merge follow-up #8525

User-facing changes
Negligible: Highlight animation is no longer canceled upon clicking on the focused element.
I've found it's quite hard to click the element in the ~0.3s animation anyways.
Testing Instructions

QA

[x] This is a non-user-facing change and requires no QA

UAT

[x] UAT should use the same steps as above.

Reviews
Does this PR have a security-related impact?
No.
Does this PR change what data or activity we track or use?
No.
Does this PR have a legal-related impact?
No.
Checklist

[x] This PR addresses an existing issue and I have linked this PR to it in ZenHub
[x] I have tested this code to the best of my abilities
[x] I have verified accessibility to the best of my abilities (docs)
[x] I have verified i18n and l10n (translation, right-to-left layout) to the best of my abilities
[x] This PR contains automated tests (unit, integration, and/or e2e) to verify the code works as intended (docs)
[x] I have added documentation where necessary
[x] I have added a matching Type: XYZ label to the PR

Related to #8259. Prerequisite for #8309.

Thanks for the review! I'll make your suggested changes in a follow-up PR if you don't mind (flaky tests).

Thanks for the review! I'll make your suggested changes in a follow-up PR if you don't mind (flaky tests).

totally don't mind. i honestly think it's fine how it is.

authors: BrittanyIRL choumx

repo: google/web-stories-wp


text:
Nix support for reproductive build

Mostly for my own convenience, I have added some files for more reproductive builds by Nix. When the time is ready, I will add this formatter to the official Nix package repository, because there are very few formatters for yaml in the world.

Thanks for the PR! My knowledge of Nix is pretty minimal unfortunately, but I'm the only one who can review stuff on this repo right now. :grin:
Is the only choice for all of these files to live in the root directory of the repo? It unfortunately would clutter things quite a bit, so I don't think I'd be in favour of it. I would like to support things like deb and chocolatey eventually, I wonder if we could make a packaging directory or something like that and put this in the packaging/nix subdirectory? As I said I don't know a ton about Nix other than the general premise, so I'm not sure if that's technically possible.

As far as I know, the following must be placed in the project route

flake.nix
flake.lock
shell.nix
default.nix

Probably, the following can be moved to the /nix directory with editing some files

gomod2nix.toml

The following can be removed if desired, because they're only useful for develop experiments w/ Nix

.envrc
.taplo.toml
treefmt.toml
.gitattributes (because ignore diff for flake.lock)

Hmm, I think this may be too specific to include in the main repo. I wonder if a more maintainable way to do this would be a new repo entirely? You could pull in this repo as a submodule, and in the buildGoModule section instead of the root being ./. you could do ./yamlfmt (or whatever the path to the submodule) and it looks like at a cursory glance a lot of this would work the same?
If you were to do that, I could then add nix to the installation option documentation. :smile:

I remember that git submodules and Nix are slightly incompatible, I'll try anyway, but keep in mind that it may not be possible.

I created as external repository and this PR no longer needed, so I closed.

repo: google/yamlfmt


text:
iOS not playing preroll after reset

I'm testing our player here.  Our current setup for this particular player instantiation is that the player will change to a new video at the end of the current one.
When the first video plays in iOS, I get a preroll.  That works fine.  On the next video, however, no preroll plays.  It tries to request the ads, but never actually does.
On Android, however, this works fine, and I get a preroll with each video.  The difference between the two is that Android uses player.ima.startFromReadyCallback(), while on iOS, we just play the video, because player.ima.startFromReadyCallback() hasn't worked properly before.
I decided to try player.ima.startFromReadyCallback() again tonight as a possible solution to this, as the SDK has been updated many times since I last made the attempt.  However, I get the following error: Ad error: AdError 400: There was an error playing the video ad. Caused by: Error: AdError 1205: The browser prevented playback initiated without user interaction.
This error will return even with the first preroll.  However, if I set it to just do player.play() instead, the first preroll plays fine and doesn't throw that error.  Because of that, I'm utterly baffled as to why that error is thrown in iOS with the same method of starting ads.
I think it's possible that it's related to this Groups thread.

Which version of the contrib-ads plugin are you using? We saw an issue similar to this in the past, where playlist videos weren't showing ads after the first video, and it ended up being a contrib-ads issue that was fixed in their 5.1.3 release.

I'm using 5.0.3.  I'll upgrade it and see if that solves the problem.

Upgrading is causing the following error on iOS:
videojs-contrib-ads has not seen a loadstart event 5 seconds after being initialized, but a source is present. This indicates that videojs-contrib-ads was initialized too late. It must be initialized immediately after video.js in the same tick. As a result, some ads will not play and some media events will be incorrect. For more information, see https://github.com/videojs/videojs-contrib-ads#important-note-about-initialization
I'm using require, so I don't know if that makes a difference.  I did have to manipulate the plugin code a little bit to get it to stop trying to also require videojs (again) so I don't know if it's a plugin issue or the changes I had to make.  But it works fine on Desktop.

Hrm ok in that case I think you'll need to wait for #456 which updates the plugin to work with the latest contrib-ads.

Do you have an ETA on when that is getting merged into master?

Should be good to go as soon as @ypavlotsky is done looking at it. I'm not sure what his timeline is on that.

Hey Shawn, this was v1 of what? And was your update in the plugin or in the IMA SDK?

v1 of the plugin. The update was to the plugin, though there have been updates to the IMA SDK recently as well.

Ok awesome.  I was thinking you were already in v1, so I was confused for a moment.  I'll be updating our plugin version sometime within the next couple of weeks and testing.  The holidays might force that to be pushed until after the new year but I will make sure to test this on iOS as soon as possible and get back to you.

Sounds good, let me know!

@stoicbuddha did the update fix this issue for you? Thanks!

I had the same problem, the update solved the problem and now everything works very well, now it reproduces the advertising without any problem.
but it does not work with the version of video-js v6.6.3. With version 5.20.4 works perfectly

Good to hear, thanks! We're currently only able to support VJS 5, we don't have VJS 6 support yet.

authors: dannyf620 shawnbuso stoicbuddha

repo: googleads/videojs-ima


text:
Release PR should update WORKSPACE file as well

@ddixit14  has an idea to automate the change on release please pull requests.

I tried having Release Please to maintain gax-java/dependencies.properties in https://github.com/googleapis/gapic-generator-java/pull/1469/files (closed). However current Bazel setup does not work with "-SNAPSHOT" versions.

repo: googleapis/gapic-generator-java


text:
Android build fails

e: /Users/tolu/src/flutter/octranspo_flutter/octranspo_flutter/build/app/generated/source/proto/debug/client/endpoint/v1/KotlinBuilders.kt: (7, 14): Unresolved reference: Latlng
e: /Users/tolu/src/flutter/octranspo_flutter/octranspo_flutter/build/app/generated/source/proto/debug/client/endpoint/v1/KotlinBuilders.kt: (8, 14): Unresolved reference: RouteOuterClass
e: /Users/tolu/src/flutter/octranspo_flutter/octranspo_flutter/build/app/generated/source/proto/debug/client/endpoint/v1/KotlinBuilders.kt: (9, 14): Unresolved reference: Stopinfo
e: /Users/tolu/src/flutter/octranspo_flutter/octranspo_flutter/build/app/generated/source/proto/debug/client/endpoint/v1/KotlinBuilders.kt: (10, 22): Unresolved reference: Stoproutetimes
e: /Users/tolu/src/flutter/octranspo_flutter/octranspo_flutter/build/app/generated/source/proto/debug/client/endpoint/v1/KotlinBuilders.kt: (13, 52): Unresolved reference: Buses
e: /Users/tolu/src/flutter/octranspo_flutter/octranspo_flutter/build/app/generated/source/proto/debug/client/endpoint/v1/KotlinBuilders.kt: (16, 53): Unresolved reference: Buses
e: /Users/tolu/src/flutter/octranspo_flutter/octranspo_flutter/build/app/generated/source/proto/debug/client/endpoint/v1/KotlinBuilders.kt: (17, 28): Unresolved reference: Stopinfo
e: /Users/tolu/src/flutter/octranspo_flutter/octranspo_flutter/build/app/generated/source/proto/debug/client/endpoint/v1/KotlinBuilders.kt: (24, 22): Forbidden vararg parameter type: [ERROR : Stopinfo.StopInfo]

application build.gradle sample
`def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply plugin: 'com.google.protobuf'
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
compileSdkVersion 29
sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
}

lintOptions {
    disable 'InvalidPackage'
}

defaultConfig {
    versionCode 1
    versionName "1.0.0"
    applicationId "toluog.octranspo_flutter"
    multiDexEnabled true
    minSdkVersion 16
    targetSdkVersion 29
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
    release {
        signingConfig signingConfigs.release
        minifyEnabled true
        useProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

}
flutter {
source '../..'
}
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.7.1'
}
plugins {
// For android projects, uncomment the lines below
javalite {
artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0'
}
client {
artifact = 'com.github.googleapis:gapic-generator-kotlin:master-SNAPSHOT:core@jar'
}
}
generateProtoTasks {
all().each { task ->
// For android projects, uncomment the lines below
task.builtins {
remove java
}
task.plugins {
// For android projects, uncomment the lines below
javalite {}
            // this generates your client library and helper Kotlin builders!
            client {}
        }
    }
}

}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'junit:junit:4.12'
def multidex_version = "2.0.1"
implementation "androidx.multidex:multidex:$multidex_version"
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.4"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.4"
//    implementation group: 'com.google.protobuf', name: 'protobuf-javalite', version: '3.8.0-rc-1'
implementation 'com.squareup.retrofit2:retrofit:2.7.2'
implementation("com.squareup.okhttp3:logging-interceptor:4.4.0")
implementation group: 'com.squareup.retrofit2', name: 'converter-protobuf', version: '2.4.0'
implementation 'com.github.googleapis.gax-kotlin:kgax-grpc:master-SNAPSHOT'
}
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'
`

Sample proto file in app/src/main/proto/model/stopInfo.proto
syntax = "proto3";

package model;
option go_package="github.com/ToluwaniO/octranspo_backend/idl/model";
option java_package = "toluog.octranspo_flutter.idl.model";

import "model/latlng.proto";

message StopInfo {
    string stopID = 1;
    string stopCode = 2;
    string stopName = 3;
    LatLng latLng = 4;
}

Hey @ToluwaniO this is a known issue (#21). You'll need to add the option java_multiple_files = true; for now. If that doesn't work feel free to reopen this with the error you're seeing.

authors: ToluwaniO jbolinger

repo: googleapis/gapic-generator-kotlin


text:
Revert "Minor performance improvement to Distribution (#733)"

This reverts commit a9731e758ad4f943d589d3ee57ad75a5a35b7ac2.
This is causing a downstream test failure in Pub/Sub. Let's retry with more testing here.

The Kokoro Java 7 failure is related to gradle and SSL certs for a dependency (environment issue). Java 7 is passing on the travis build.

repo: googleapis/gax-java


text:
feat: add support for user configured universe

Fixes #<issue_number_goes_here> 🦕

Closing this PR since the work has already been merged as part of a separate PR.

repo: googleapis/google-api-python-client


text:
Move builds to Fedora:35

Fedora:35 is out:
https://fedoraproject.org/wiki/Releases
We can now start moving the builds to this release, Fedora:34 (the version we currently use) will go EOL around 2022-05-25.

Note that Docker <= 20.10.9 does not work with Fedora:35:
https://medium.com/nttlabs/ubuntu-21-10-and-fedora-35-do-not-work-on-docker-20-10-9-1cd439d9921
The version of Docker on GCB is 20.10.6:
https://cloud.google.com/build/docs/release-notes
There are workarounds:
https://github.com/AkihiroSuda/clone3-workaround
I would rather wait another month or two before implementing the workarounds.

The docker server is updated to 20.10.12:
https://console.cloud.google.com/cloud-build/builds;region=us-east1/26cbe831-7cbb-43b4-bede-4c2787b4e072;tab=detail?project=cloud-cpp-testing-resources
And I am updating the instructions to install the same version in our workstations.

repo: googleapis/google-cloud-cpp


text:
Speaker Diarization in C#

I want to work with Speaker Diarization in C#, I got an overall idea it will work with Google.Cloud.Speech.V1P1Beta1Google.Cloud.Speech.V1P1Beta1 and I want to work with SpeakerTag.
I just want to know what properties I should enable and use for a better and more accurate result of speaker tag, which works for both longer and shorter audio files. I tried to do it, but speakerTags  are no where near to right solutions

waah

The maintainers of this repository are not experts on specific APIs. We're more focused on making sure that the client libraries accurately reflect the underlying API and making sure that the requests you make get to the server, and that the responses from the server are correctly transported to your code.
This question is really about the details of the Speech API itself - so we're really not going to be able to help you.
I would suggest you look at the options on https://cloud.google.com/speech-to-text/docs/getting-support... the cloud-speech-discuss group is probably the best approach here.
I'm going to close this issue now as I doubt that what you're seeing is due to the client library. If you have reason to believe that it is a client library issue, please add a comment to provide more information.

authors: harsh-tukadiya jskeet shreyshahh

repo: googleapis/google-cloud-dotnet


text:
SpannerConnectionStringBuilder.ConversionOptions are set inconsistently

When SpannerConnection.ConnectionString is set, it calls the SpannerConnectionStringBuilder(string, ChannelCredential, SessionPoolManager) constructor... whereas the Clone() method explicitly copies ConversionOptions from the source.
It's unclear whether setting SpannerConnectionStringBuilder.ConnectionString uses the indexer to set each value (in which case we don't need to copy it in Clone) or whether it's lost in the SpannerConnectionStringBuilder(string, ChannelCredential, SessionPoolManager) constructor.
We should be consistent and document the reasoning.

Looking at this again, we have a slight issue when setting ConnectionString, if the previous connection string specified conversion options but the new one doesn't. Here's a failing test:
[Fact]
public void SettingConnectionStringResetsConversionOptions()
{
    var builder = new SpannerConnectionStringBuilder();
    builder.ConnectionString = "SpannerToClrTypeDefaultMappings=DateToSpannerDate";
    builder.ConnectionString = "";
    Assert.Equal(SpannerConversionOptions.Default.DateToConfiguredClrType, builder.ConversionOptions.DateToConfiguredClrType);
}

Basically I suspect we want to create conversion options lazily, rather than responding to keys being set explicitly.
Will fix this.

Ah - it's actually fairly straightforward; we just need to override Clear(), I think. That is always called when the ConnectionString property is set.

Hi @jskeet - This seems to have been introduced by me. I can take a look at it and make the changes after discussing it with you tomorrow. Please let me know.

I've fixed it in a PR that I'll be sending later :)

authors: Rishabh-V jskeet


text:
chore: Migrate to centralized package management

Our production libraries core dependencies (Grpc.Net.Client etc) are currently still explicit, but we could potentially even centralize though, only being explicit when creating patch releases (which is rare).
There's a significant downside, which is that we either need to use package source mapping, or only have a single package source. This is probably a generally good thing for supply chain security, but we'll want to work out how to use locally-generated packages easily.

Humbug - releases have conflicted. Will rebase and sort out...


text:
Restore the ability to pass a cancellation token in for query streaming

Users could already cancel the stream using a cancellation token
when calling GetAsyncEnumerator, but it may be convenient to do it
when creating the stream.

Cracking - merging, will then rebase to keep it with the other one.


text:
feat: Add Range object to allow reading range value

This PR also adds the ability to use Range query parameter
Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[x] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[x] Ensure the tests and linter pass
[x] Code coverage does not decrease (if any source code was changed)
[x] Appropriate docs were updated (if necessary)

Fixes #3235 ☕

Thank you for the review.

repo: googleapis/java-bigquery