text:
Android Basics: Fragments Navigation component

URL of codelab
https://developer.android.com/codelabs/basic-android-kotlin-training-fragments-navigation-component?authuser=1&continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-kotlin-unit-3-pathway-2%3Fauthuser%3D1%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fbasic-android-kotlin-training-fragments-navigation-component#0
In which task and step of the codelab can this issue be found?
It's the first step, "Before you begin".
Describe the problem
It's a typo. In the second sentence of the 3rd paragraph, there is a missing "t" at the end of the word fragment.
Steps to reproduce?

Go to... Fragments and the Navigation Component codelab first step.
Scroll to... 3rd paragraph of the first step.
See error... at second sentence's end. "t" is missing in word fragment.

Versions
Android Studio version:
API version of the emulator:
Additional information

@Anees-Iqbal
Thank you for reaching out to us. The typo is fixed and published.

authors: Anees-Iqbal osuleymanova


text:
First Android app: Android Basics with Compose

URL of codelab
https://developer.android.com/codelabs/basic-android-kotlin-compose-first-app
In which task and step of the codelab can this issue be found?
First statement.
Describe the problem
The template name should be "Empty Activity" and not "Empty Compose Activity" as per the most recent/stable version of Android Studio.
Steps to reproduce?
N/A
Versions
Android Studio version: 2022.2.1
API version of the emulator: N/A
Additional information
Include screenshots if they would be useful in clarifying the problem.

Hi @vmrocha
Thank you for writing in with this issue.
You are correct and the course content and screen images have been updated to reflect the latest stable version of Android Studio.
As this issue has been resolved, I will mark it as closed.
Hope you are enjoying the course!
Regards.

source: gharchive/issue

authors: johnshea vmrocha

license_type: permissive

license_source: github-api


text:
Can't change country and No credits cards shown

I've a credit card on my Google pay but it doesn't show it to me it leads me to add a new card and when I card that it exists it doesn't allow besides I can't change the country It's stick on United States and no errors are shown

Hi @MezoPeeta, what type of card do you have in your account?
Also, how does your payment configuration looks like? Remember that the card types that you don't include in the configuration won't show up in the payments sheet.

Hi @MezoPeeta, your configuration looks good.
What country are you operating from?
Have you tried using a less restrictive configuration (eg.: removing the billingAddressRequired and billingAddressParameters properties, and including all the allowed values in  allowedCardNetworks)?
What do you mean when you say that you can't change countries?

One thing        I do not understand from the documentation is this.
When we specify transactionInfo property of the payment method as shown below.
"transactionInfo": {
      "countryCode": "US",
      "currencyCode": "USD"
}

What exactly does this mean? Are we saying that all transactions will be processed in USD or in the United States?
@MezoPeeta   do you think this is why the country code is stock to US?

authors: JlUgia MezoPeeta ndesamuelmbah

repo: google-pay/flutter-plugin

license_source: bigquery


text:
fix: remove next as a required dependency

Closes: https://github.com/google-pay/react-native-make-payment/issues/25

Hi @dmengelt, stephenmcd, @JlUgia any chance this can be looked into?, our react native apps are unnecessarily bundling nextjs.

source: gharchive/pull-request

repo: google-pay/react-native-make-payment


text:
Exploding gradients in training BERT from scratch

Hi, I am training (base) BERT with 4 GPU V100 (each 16GB) with this training configuration:
Data is only 200million words
--train_batch_size=8
--max_seq_length=512
--max_predictions_per_seq=75
--num_train_steps=7000000
--num_warmup_steps=70000
--learning_rate=1e-4
--vocab_size=70K
Tensorflow 1.15

Shouldn't this happen as the training already include gradient clipping? (grads, _) = tf.clip_by_global_norm(grads, clip_norm=1.0)
Or could it be because my vocab size is too big for my current data? I notice BERT vocab is only 30K.

My first observation is your batch size is very low, do remember that google bert code is not optimized to run on multiple GPUs, I highly recommend using this instead: https://github.com/NVIDIA/DeepLearningExamples/tree/master/PyTorch/LanguageModeling/BERT
this branch will help if you have scaling happening on a single machine with multiple GPUs

Hi @dhruvsakalley thanks for your reply.
You are right, its not for multi-gpu training. I 've checked my training, even with 1 GPU and batch_size 8, it works properly.
Thank you for your suggestion. Really help!

repo: google-research/bert


text:
[Question] How to inference / captioning short video?

I read in the readme file, paligemma can captioning a short video, anyone can guide me to do that?
Does it extract every frames on the video? Or does the paligemma tokenizer directly support video or I need to convert my video to be a numpy array?

PaliGemma can process a stack of frames without architecture modifications. We also released preprocessing ops to subsample videos or extract frames with a fixed stride. There are fine-tuning configs for several academic video data sets, for example MSR-VTT
https://github.com/google-research/big_vision/blob/main/big_vision/configs/proj/paligemma/transfers/msrvtt_cap.py
However, there are no fine-tuned checkpoints available, and some extra work is required to set up data loading for fine-tuning. Please see the video configs for details.

Wow, great thank you for the guidance. 🙏

@mitscha Could you please share some example code on one could do short video captioning with a base pretrained model? I'm very interested in this.

Are the paligemma-mix models also finetuned for video captioning?

Anybody figured out how to fine-tune paligemma on videos, that could help share the code?

PaliGemma can process a stack of frames without architecture modifications. We also released preprocessing ops to subsample videos or extract frames with a fixed stride. There are fine-tuning configs for several academic video data sets, for example MSR-VTT https://github.com/google-research/big_vision/blob/main/big_vision/configs/proj/paligemma/transfers/msrvtt_cap.py
However, there are no fine-tuned checkpoints available, and some extra work is required to set up data loading for fine-tuning. Please see the video configs for details.

Sorry, what kind of extra work is needed?

@mitscha Just following up on your point. It seems that simply stacking frames (i.e. passing a tensor of frames size [16, width, height, 3] to the processor doesn't quite work. The error that is returned is:

ValueError: Number of images does not match number of special image tokens in the input text. Got 1024 image tokens in the text but 16384 tokens from image embeddings.

The paligemma model on HF demo doesn't say anything about passing image tokens, so I am thinking it is implicitly handled when a video is passed. But something about my input is not leading to that happening. What is the standard usage for video inputs to the paligemma-3b models using the HF api? It would be great if an example could be added to the README there.

authors: BalloutAI OguzCennet chancharikmitra mitscha mvsoom yoesak


text:
Which approach to the on-policy training/inference synchronization is best?

Hi,
I am thinking of a synchronization technique that would be suitable to introduce an on-policy algorithm such as PPO
which alternates between data collection and training. I came up with 3 basic ideas and would very much appreciate it if anyone could help me judge if any of them is valid. I am leaning towards the last one as it doesn't use busy waits (i.e., empty while loops on sync variables), although I am not entirely sure how (un)acceptable is a busy loop on a GPU. Although below I present simple pseudocode to demonstrate ideas, I implemented them minimally outside of SEED to try out synchronization via tf variables
inside of TF functions called through SEED's gRPC framework to examine potential problems. One of such problems is the
default mode of autograph which unaware of my synchronization efforts (re)moves stuff thus compromising my intents, but I did
some artificial dependencies hackery to go around this problem (guess optimizations can be controlled but ideally I would
hope for sth like much-hated C++ volatile qualifier). In any case: thanks for any feedback, if any of the below approaches, are valid and/or ideas for alternatives.
# Model is a tf.module with a constructor and 2 tf.functions: infer and train called with gRPC as in SEED.
# tf variables live on cpu of a sole host associated with learner

#1 busy waits, many sync variables
class Model() {

    def Model() {
        var training = tf.Var(False)
        var inferring = tf.Var([False]*NUM_ACTORS)
    }

    def infer(id) {
        while training:
            pass

        inferring[id] = True
        ...
        inferring[id] = False

        return result
    }

    def train() {
        training = True
        while sum(inferring) > 0:
            pass

        ...
        training = False
    }
}

#2 busy waits, a single sync flag, invalidating inference result
class Model() {

    def Model() {
        var training = tf.Var(False)
    }

    # invariant: time(inference) < time(training)
    def infer(id) {
        do {
            while training:
                pass

            ...

        } while not training

        return result
    }

    def train {
        training = True
        ...
        training = False
    }
}

#3 no busy waits, single sync variable, client needs to balance inference calls and reject some of the returns
class Model {

    def Model() {
        var training = tf.Var(False)
    }

    # invariant: time(inference) < time(training)
    def infer(id) {

        if training:
            return None

        ...

        if training:
            return None

        return result
    }

    def train {
        training = True
        ...
        training = False
    }
}

Hi,
There is soon going to be a PPO version in SEED open sourced which could serve as an example for what you want to do.

Actually, few weeks ago I asked Marcin Andrychowicz on release of the code due to his work on on-policy RL. Although affirmative. he was unable to tell when that might happen, so I thought of poking a bit on my own and asking around if needed. Guess you are referring to the very same line of work?

authors: Antymon lespeholt


text:
Missing word "rather" on /web/fundamentals/look-and-feel/animations/css-vs-javascript

https://developers.google.com/web/fundamentals/look-and-feel/animations/css-vs-javascript
"If you’re already using jQuery or a JavaScript framework that includes animation functionality then you may find it more convenient overall to stick with that for your animations (rather) than switching to CSS."

This should be live soon.

repo: google/WebFundamentals


text:
Small fixes for latest DevTools Digest

Addresses @kaycebasques comments from #2589.

LGTM

authors: kaycebasques pbakaus


text:
Payment Request API - Rejig

This PR is largely a place holder at the moment to enable numerous contributors work on a single source of truth for the next Payment Request Docs.
@petele + @agektmr can you confirm if this structure is ok with you?
@agektmr At the moment I've put your name against the FAQ of the merchants guide, is that ok with you?
@mustafa-x I've added a file for UX best practices for you (It's currently blank apart from your name ;) )
@afitz0 I've scheduled time with you tomorrow to see if you are interested in working on any of this
@zkoch as an FYI - need to sync on the Android + Web Payment Processor Side of this.

Me on FAQ sounds good.
I'm also planning to write a basic guide for integrating with Payment Gateways where it also hosts list of available PGs. Can you add that?

ill take a look later and see what I can do.

@agektmr can you create a branch based off of this branch and then PR back into this branch?

Going to close this given all the other individual PRs.

authors: agektmr gauntface mustafa-x


text:
Update index.md

indentation increased as explained in my previous issue: https://github.com/google/WebFundamentals/issues/4422

Welcome @kosamari :smiley:


text:
[devtools-blog] How we built the Chrome DevTools Issues tab - DevTools engineering blog

Target Live Date: 2020-08-29

[x] This has been reviewed and approved by (@chybie)
[x] I have run npm test locally and all tests pass.
[x] I have added the appropriate type-something label.
[x] I've staged the site and manually verified that my content displays correctly.

CC: @petele, @mathiasbynens, @sigurdschneider, @jschfflr, @samdutton

Whoops!
There were 38 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/updates/2020/08/chrome-devtools-issues-tab.md#L7 - Unknown tag 'devtools-blog' found, use an existing tag, or add it to 'src/data/commonTags.json'.
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L102 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L102 - Updates post is missing RSS feed widget: '{% include "web/_shared/rss-widget-updates.html" %}'
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L36 - Common typo found: 'realised' Should it be 'realized'? Please use American spellings. See: https://developers.google.com/style/spelling
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L34 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L36 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L45 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L56 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L59 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L63 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L65 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L69 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L71 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L76 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L78 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L80 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L84 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L86 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L91 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L93 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L95 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L98 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L100 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L102 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L104 - Line must be at most 100 characters

Whoops!
There were 38 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/tools/chrome-devtools/blog/index.md#L13 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L7 - Unknown tag 'devtools-blog' found, use an existing tag, or add it to 'src/data/commonTags.json'.
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L108 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L34 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L36 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L45 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L56 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L59 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L63 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L65 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L69 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L71 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L76 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L78 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L80 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L84 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L86 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L91 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L93 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L95 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L98 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L100 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L102 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L104 - Line must be at most 100 characters
src/content/en/updates/_shared/discover-devtools-blog.md#L6 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

Whoops!
There were 37 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/tools/chrome-devtools/blog/index.md#L13 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L108 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L34 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L36 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L45 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L56 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L59 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L63 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L65 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L69 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L71 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L76 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L78 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L80 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L84 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L86 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L91 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L93 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L95 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L98 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L100 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L102 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L104 - Line must be at most 100 characters
src/content/en/updates/_shared/discover-devtools-blog.md#L6 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

A note on file names and URLs (non-actionable for now): while src/content/en/updates/2020/08/chrome-devtools-issues-tab.md makes sense for WebFu, once we migrate to a separate website that already has “Chrome DevTools” somewhere in its URL, we’ll want to rename the slug from chrome-devtools-issues-tab just issues-tab.

Oh, and one more thing: try and make sure you run the images through Squoosh or ImageOptim.app. On related-issues.png for example, we can save 4.9% of file size.

Whoops!
There were 37 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/tools/chrome-devtools/blog/index.md#L13 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L111 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L34 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L36 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L45 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L56 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L59 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L63 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L65 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L69 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L71 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L77 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L79 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L81 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L85 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L87 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L93 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L95 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L97 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L101 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L103 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L105 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L107 - Line must be at most 100 characters
src/content/en/updates/_shared/discover-devtools-blog.md#L6 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

Oh, and one more thing: try and make sure you run the images through Squoosh or ImageOptim.app. On related-issues.png for example, we can losslessly save 4.9% of file size.

Yes, I actually ran all the images through tinypng.com because it can somehow compress png smaller than Squoosh sometimes... (the team is notified).

Oh, and one more thing: try and make sure you run the images through Squoosh or ImageOptim.app. On related-issues.png for example, we can losslessly save 4.9% of file size.

Yes, I actually ran all the images through tinypng.com because it can somehow compress png smaller than Squoosh sometimes... (the team is notified).

Yeah, the same goes for ImageOptim.app with these settings:

Whoops!
There were 37 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/tools/chrome-devtools/blog/index.md#L13 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L111 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L34 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L36 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L45 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L56 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L59 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L63 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L65 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L69 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L71 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L77 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L79 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L81 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L85 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L87 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L93 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L95 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L97 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L101 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L103 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L105 - Line must be at most 100 characters
src/content/en/updates/2020/08/chrome-devtools-issues-tab.md#L107 - Line must be at most 100 characters
src/content/en/updates/_shared/discover-devtools-blog.md#L6 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

Whoops!
There were 37 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/tools/chrome-devtools/blog/index.md#L13 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/devtools/issues-tab.md#L111 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/devtools/issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L34 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L36 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L45 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L56 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L59 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L63 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L65 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L69 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L71 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L77 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L79 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L81 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L85 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L87 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L93 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L95 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L97 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L101 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L103 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L105 - Line must be at most 100 characters
src/content/en/updates/2020/08/devtools/issues-tab.md#L107 - Line must be at most 100 characters
src/content/en/updates/_shared/discover-devtools-blog.md#L6 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

A note on file names and URLs (non-actionable for now): while src/content/en/updates/2020/08/chrome-devtools-issues-tab.md makes sense for WebFu, once we migrate to a separate website that already has “Chrome DevTools” somewhere in its URL, we’ll want to rename the slug from chrome-devtools-issues-tab just issues-tab.

Good one! I updated the link to /web/updates/2020/08/devtools/issues-tab for now instead. When the url is updated, I will strip off the folder instead. Preview: https://pr-8968-dot-web-central.appspot.com/web/updates/2020/08/devtools/issues-tab

A note on file names and URLs (non-actionable for now): while src/content/en/updates/2020/08/chrome-devtools-issues-tab.md makes sense for WebFu, once we migrate to a separate website that already has “Chrome DevTools” somewhere in its URL, we’ll want to rename the slug from chrome-devtools-issues-tab just issues-tab.

Good one! I updated the link to /web/updates/2020/08/devtools/issues-tab for now instead. When the url is updated, I will strip off the folder instead. Preview: https://pr-8968-dot-web-central.appspot.com/web/updates/2020/08/devtools/issues-tab

Hmm, I'm not sure that's better URL design, given that https://pr-8968-dot-web-central.appspot.com/web/updates/2020/08/devtools 404s. But then again, it seems WebFu URL design is broken anyway (e.g. https://pr-8968-dot-web-central.appspot.com/web/updates/2020/08 doesn't work either).

Heh, it also seems to break the "What's New in DevTools (Chrome 86)" link in the sidebar.

Whoops!
There were 37 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/tools/chrome-devtools/blog/index.md#L13 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/issues-tab.md#L111 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L34 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L36 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L45 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L56 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L59 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L63 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L65 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L69 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L71 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L77 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L79 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L81 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L85 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L87 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L93 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L95 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L97 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L101 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L103 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L105 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L107 - Line must be at most 100 characters
src/content/en/updates/_shared/discover-devtools-blog.md#L6 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

Whoops!
There were 39 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/tools/chrome-devtools/blog/index.md#L13 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/issues-tab.md#L116 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L34 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L36 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L45 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L56 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L59 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L63 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L65 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L71 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L72 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L76 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L78 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L82 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L84 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L86 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L90 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L92 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L98 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L100 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L102 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L106 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L108 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L110 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L112 - Line must be at most 100 characters
src/content/en/updates/_shared/discover-devtools-blog.md#L6 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

Whoops!
There were 41 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/tools/chrome-devtools/blog/index.md#L13 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/tools/chrome-devtools/blog/index.md#L6 - WF Tag 'wf_updated_on' must be within the last 7 days.
src/content/en/updates/2020/08/issues-tab.md#L116 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/08/issues-tab.md#L5 - WF Tag 'wf_updated_on' must be within the last 7 days.
src/content/en/updates/2020/08/issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L34 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L36 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L45 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L56 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L59 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L63 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L65 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L71 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L72 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L76 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L78 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L82 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L84 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L86 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L90 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L92 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L98 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L100 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L102 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L106 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L108 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L110 - Line must be at most 100 characters
src/content/en/updates/2020/08/issues-tab.md#L112 - Line must be at most 100 characters
src/content/en/updates/_shared/discover-devtools-blog.md#L6 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

Whoops!
There were 43 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/tools/chrome-devtools/blog/index.md#L13 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/tools/chrome-devtools/blog/index.md#L6 - WF Tag 'wf_updated_on' must be within the last 7 days.
src/content/en/updates/2020/09/issues-tab.md#L130 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/09/issues-tab.md#L34 - Common typo found: 'realised' Should it be 'realized'? Please use American spellings. See: https://developers.google.com/style/spelling
src/content/en/updates/2020/09/issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L33 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L35 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L43 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L47 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L54 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L64 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L68 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L72 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L74 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L76 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L78 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L82 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L84 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L86 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L90 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L92 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L94 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L98 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L105 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L107 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L109 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L114 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L116 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L118 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L120 - Line must be at most 100 characters
src/content/en/updates/_shared/discover-devtools-blog.md#L6 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

Whoops!
There were 43 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/tools/chrome-devtools/blog/index.md#L13 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/tools/chrome-devtools/blog/index.md#L6 - WF Tag 'wf_updated_on' must be within the last 7 days.
src/content/en/updates/2020/09/issues-tab.md#L130 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/09/issues-tab.md#L34 - Common typo found: 'realised' Should it be 'realized'? Please use American spellings. See: https://developers.google.com/style/spelling
src/content/en/updates/2020/09/issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L33 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L35 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L43 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L47 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L54 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L64 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L68 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L72 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L74 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L76 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L78 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L82 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L84 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L86 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L90 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L92 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L94 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L98 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L105 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L107 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L109 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L114 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L116 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L118 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L120 - Line must be at most 100 characters
src/content/en/updates/_shared/discover-devtools-blog.md#L6 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

Whoops!
There were 43 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/tools/chrome-devtools/blog/index.md#L13 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/tools/chrome-devtools/blog/index.md#L6 - WF Tag 'wf_updated_on' must be within the last 7 days.
src/content/en/updates/2020/09/issues-tab.md#L130 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/09/issues-tab.md#L34 - Common typo found: 'realised' Should it be 'realized'? Please use American spellings. See: https://developers.google.com/style/spelling
src/content/en/updates/2020/09/issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L33 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L35 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L43 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L47 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L54 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L64 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L68 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L72 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L74 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L76 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L78 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L82 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L84 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L86 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L90 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L92 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L94 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L98 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L105 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L107 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L109 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L114 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L116 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L118 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L120 - Line must be at most 100 characters
src/content/en/updates/_shared/discover-devtools-blog.md#L6 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

Whoops!
There were 43 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/tools/chrome-devtools/blog/index.md#L13 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/tools/chrome-devtools/blog/index.md#L6 - WF Tag 'wf_updated_on' must be within the last 7 days.
src/content/en/updates/2020/09/issues-tab.md#L130 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful
src/content/en/updates/2020/09/issues-tab.md#L34 - Common typo found: 'realised' Should it be 'realized'? Please use American spellings. See: https://developers.google.com/style/spelling
src/content/en/updates/2020/09/issues-tab.md#L19 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L21 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L25 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L27 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L29 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L33 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L35 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L43 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L47 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L49 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L51 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L53 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L54 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L55 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L57 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L64 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L66 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L67 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L68 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L72 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L73 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L74 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L76 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L78 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L82 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L84 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L86 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L90 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L92 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L94 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L98 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L105 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L107 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L109 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L114 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L116 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L118 - Line must be at most 100 characters
src/content/en/updates/2020/09/issues-tab.md#L120 - Line must be at most 100 characters
src/content/en/updates/_shared/discover-devtools-blog.md#L6 - Consider adding a "was this page helpful?" widget to your page: https://developers.google.com/web/resources/widgets#helpful

authors: WebFundBot chybie mathiasbynens


text:
Update jest

I had issue with running tests so I did update jest. but the last change that helped me to fix the issue
was adding test as environment variables and  --no-cache as jest options.
Also a I install a module that jest documentation has recommended here

Coverage remained the same at 100.0% when pulling 3087dbaf66568e7802ad295565439bae058c31b4 on saeidalidadi:update-jest into dc3abb22651301d13d375d41d65b04d2d0b0ab8c on google:master.

What was the issue running tests before?

It was an error for all tests as:
SyntaxError: Unexpected token import

Which version of Node are you running?
Just want to make sure this is absolutely necessary given that tests work fine on Travis and on my different setups.

I am running on v8.9.3.
I could test it on v7 and v8.1

I checked the tests on 6.x, 7.x and 8.x of node versions and all passed successfully.

Great! Will get this in. Any idea why there are so many commits (even some that are already in).

I pulled all changes from upstream while I was working on the update-jest branch and I did not any rebase,  this one is the mistake that shows this branch have been created from another branch which was behind master(not sure).
this is my workflow:

Pull from upstream.
Create a branch for new task.
Do changes.
Commit.
Pull from upstream.
Push to fork as a branch

Coverage remained the same at 100.0% when pulling 14b6550b322c3df12b99c612b06ef6ff6c6d1290 on saeidalidadi:update-jest into d01f282d02528239dc26b6407c52f8b162a74229 on google:master.

authors: coveralls nicolodavis saeidalidadi

license: MIT


text:
Expose a callback when no cameras are detected.

Instead of throwing a Runtime exception, this patch exposes a callback to indicate there were no cameras enumerated.  Tested using emulator.

I signed it!

Looks good, the only addition I would make is to call mCallback.onCameraNotAvailable() instead of barfing when the exception is thrown in  Camera2.startOpeningCamera()

authors: mkotyk phileo

repo: google/cameraview


text:
Clasp deploy doesn't update the deployed version with Google Apps Script Web App

Expected Behavior
Perhaps I'm misunderstanding, but from the readme I'd thought that clasp deploy would allow me to publish a new version of a Web App (in this case bound to a google sheet).
I'd expected the workflow to be as follows:

clasp version "My new version"

Created version xx.

clasp deploy xx

yyyyyyyyyyyyyyyyy @xx

clasp open
browser opens to newly published version "xx"

Actual Behaviour
The version is created as expected, but the web app Project Version remains at the last deployed version not the version used with clasp deploy. To actually deploy it I have to go into the Script Editor then Publish > Deploy as Web App and then select the version "xx"
Related Issues
This seems related to https://github.com/google/clasp/issues/43, however that issue specifically relates to Chrome store apps and this is a Web App which the comments on that issue suggest should be supported.

I think you want to redeploy to update a deployment:
clasp redeploy <deploymentId> <version> <description>
Is that right?
I think I forgot to add it in the "How To..." section. LMK if that works.

@grant
I am experiencing the same phenomenon.
Can note update version of Web App with "clasp deploy".

@andysumi What are the commands you're using? Use redeploy to update, deploy to create.

@grant
I used both command, but it did not work as expected.
$ clasp version deploy-from-clasp
Created version 4.
$ clasp deploy 4 deploy-from-clasp
- [deploymentId] @4.
$ clasp open
Opening script: [scriptId]

===> I expected version of WebApp it was updated to "4", but it was not updated(it remained "3").

$ clasp redeploy [deploymentId] 4 deploy-from-clasp-again
Updated deployment.
$ clasp open
Opening script: [scriptId]

===> Again, the version of WebApp was not updated.

@grant @andysumi @onlinelaser
I've also used both commands.
True: There is a new version deployed on the Google Apps Scripts
False: There is NOT a new Web App version deployed on Google Apps Scripts

@grant sorry for the delay, finally got back to testing this, and I can also confirm that neither deploy nor deploy followed immediately by a redeploy make the new deployment active 😞

When i use: clasp redeploy
I get "Updated deployment" in my terminal
But, when i refresh the web browser (F5) i get an error message "Se necesita autorización para realizar esta acción" (You need authorization to perform this action) in the browser.
Also, my previous config was:
Execute the app: As me
Who has access to the app: Anyone, even anonymous
How to send this two config options with  a command, and how to solve my issue with the authorization?

We have the same problem.

It doesn't appear that clasp deploy can be used to update a web application, and also can't be used to approve permissions and things like that. This would be a very useful addition. At the moment, the "Deploy as Web Application" is the only step in the development process that requires a desktop browser.

It looks like the script.google.com UI updates the manifest file (appsscript.json) file when you use the UI to publish a web app.
When you use the UI to deploy a web app, it adds this bit of code to appsscript.json:
  "webapp": {
    "access": "MYSELF",
    "executeAs": "USER_DEPLOYING"
  }

This is really important, as it's the configuration details of the web app.
So if you are using clasp, and expect to deploy a web app, you must manually update the manifest file.
Repro
Create the project with clasp

clasp create
clasp open
View > Show manifest file
Observe the manifest is updated

{
  "timeZone": "America/New_York",
  "dependencies": {
  },
  "webapp": {
    "access": "MYSELF",
    "executeAs": "USER_DEPLOYING"
  },
  "exceptionLogging": "STACKDRIVER"
}

Setup other web app files
index.html
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    hi
  </body>
</html>

test.gs
function doGet() {
    return HtmlService
      .createTemplateFromFile('index')
      .evaluate();
}

clasp deploy
Go to the URL, it should be something like this:
https://script.google.com/a/{DOMAIN}/macros/s/{VERSION_ID}/exec
See the successful deployment of a web app.

Follow-up
Good news (if this is correct): clasp isn't doing anything wrong.
Bad news: It's really not obvious why creating a web app with clasp fails.
I think a good solution would be to enhance the setup experience around starting a new add-on/web app/script. Some ideas were thrown around in #76, but it seemed out of scope for the clasp project.
We should at least give README tips on how to start with creating the 3 types of scripts to prevent this error.

Is it possible, and/or a good idea to have some sort of flag for clasp deploy like --type (web|api) that adds that to the appsscript.json for the user?

@grant can you shade some light on where we are with this issue? I would LOVE to be able to deploy a new web-app version when I push my updates. I dislike having to need to go to the WEB UI to deploy that new version of my web-app.

@shai If I'm reading this ticket correctly you should be able to do everything without the WEB UI, it's just not super clear because you'll need to manually update your appscript.json file. Here are the valid options:
"webapp": {
    "access": "MYSELF",
    "access": "ANYONE",
    "executeAs": "USER_DEPLOYING"
    "executeAs": "USER_ACCESSING"
    "executeAs": "ANYONE_ANONYMOUS"
  },

You need to pick one of the "acces" types and one of the "executeAs" types. Note that "ANYONE_ANONYMOUS" can only be used with "executeAs" type "USER_DEPLOYING"

@TrojanCoder I've actually got this already:
  "webapp": {
    "access": "ANYONE_ANONYMOUS",
    "executeAs": "USER_DEPLOYING"
  },

and when I clasp deploy it says that it deployed a new version but when I go to public -> deploy as web app ; I see that it's using the old version. Also, when I go and test the code, I see that I'm not getting the updated expected console logs of the newer version.

I just tested the steps I wrote above again. Deploying a web app from clasp works. You just need to make sure you update the appsscript.json, clasp push, and clasp deploy.
Steps: https://github.com/google/clasp/issues/63#issuecomment-393370965
Set up and deploy a web app
clasp clone 1kDaDgJUTxkVmr7TkPSqx2wjxMhiY3DH1v_nZfpdkdsPcy2Lfo-09onYz
Cloned 2 files.
└─ appsscript.json
└─ Code.js
vi appsscript.json # add the `access` and `executeAs` fields.
vi index.html # write an HTML skeleton with "hi"
vi Code.js

clasp push
└─ Code.js
└─ appsscript.json
└─ index.html
Pushed 3 files.

clasp deploy
Created version 1.
- AKfycbwP6WvBwvNI3m_d3Ts8bnYBX8y0lG7OQEuV65m2E6t3J44g9Cay8wGZ2JRfQ9mHcpI1 @1.

Go to
https://script.google.com/a/{YOUR_DOMAIN}/macros/s/AKfycbwP6WvBwvNI3m_d3Ts8bnYBX8y0lG7OQEuV65m2E6t3J44g9Cay8wGZ2JRfQ9mHcpI1/exec
See the page: "hi"
Deploy Again
vi index.html # write an HTML skeleton with "hi 2"
clasp push
clasp version
clasp deploy 2

Go to the new URL.
See the page: "hi2"
I haven't tested redeploy, but deploying a web app multiple times should work.

So I've just tested that workflow and it does push the deployment up (which was working originally as well) - but it also doesn't make it active as the published project version.
Meaning that you still need to go to the UI and make the project version the one you just deployed :-(

so I'm unsure about why it's working for some and not others? @grant if you last comment you said and showed that it works, but @onlinelaser and myself say it isn't and then you added the API support needed label which implies it doesn't work?
Should I keep trying to get it working or did you verify that it isn't working and we need to wait for a solution?

So I've just tested that workflow and it does push the deployment up (which was working originally as well) - but it also doesn't make it active as the published project version.
Meaning that you still need to go to the UI and make the project version the one you just deployed :-(

I added the API support label because it looks like the UI does something different the API cannot do yet.

Any news here?
I created an issue https://github.com/google/clasp/issues/286 about deploy, seems to be a duplicate

I found out the way to update the published web app endpoint by clasp.
We should use redeploy to update exists application ( I think we expect it is "deploy" and confusing ).
The function clasp deploy wraps create deployments API, and it always create new endpoints.
https://developers.google.com/apps-script/api/reference/rest/v1/projects.deployments/create
We just need

setup appsscript.json
clasp deploy  only first time
clasp redeploy  like https://github.com/google/clasp/issues/63#issuecomment-375772312

Also note that when you manually deploy as a web app your project (using the "Deploy as web app" menu entry), it automatically generates a new deployment (or update the existing deployment if you update your web app).
This specific deployment is automatically named by Apps Script "web app meta-version", you can grab its ID and then reuse it to update this specific deployment with Clasp.
This way, the UI will stay in sync, meaning you will be able to deploy either manually (using the "Deploy as web app" menu entry) or programmatically.

Also note that when you manually deploy as a web app your project (using the "Deploy as web app" menu entry), it automatically generates a new deployment (or update the existing deployment if you update your web app).
This specific deployment is automatically named by Apps Script "web app meta-version", you can grab its ID and then reuse it to update this specific deployment with Clasp.
This way, the UI will stay in sync, meaning you will be able to deploy either manually (using the "Deploy as web app" menu entry) or programmatically.

how do I deloy programmatically?

I just tested the steps I wrote above again. Deploying a web app from clasp works. You just need to make sure you update the appsscript.json, clasp push, and clasp deploy.
Steps: #63 (comment)
Set up and deploy a web app
clasp clone 1kDaDgJUTxkVmr7TkPSqx2wjxMhiY3DH1v_nZfpdkdsPcy2Lfo-09onYz
Cloned 2 files.
└─ appsscript.json
└─ Code.js
vi appsscript.json # add the `access` and `executeAs` fields.
vi index.html # write an HTML skeleton with "hi"
vi Code.js

clasp push
└─ Code.js
└─ appsscript.json
└─ index.html
Pushed 3 files.

clasp deploy
Created version 1.
- AKfycbwP6WvBwvNI3m_d3Ts8bnYBX8y0lG7OQEuV65m2E6t3J44g9Cay8wGZ2JRfQ9mHcpI1 @1.

Go to
https://script.google.com/a/{YOUR_DOMAIN}/macros/s/AKfycbwP6WvBwvNI3m_d3Ts8bnYBX8y0lG7OQEuV65m2E6t3J44g9Cay8wGZ2JRfQ9mHcpI1/exec
See the page: "hi"
Deploy Again
vi index.html # write an HTML skeleton with "hi 2"
clasp push
clasp version
clasp deploy 2

Go to the new URL.
See the page: "hi2"
I haven't tested redeploy, but deploying a web app multiple times should work.

what is difference between deploy and publish?
I just use clasp deploy.but How can I publish this new version to chrome web store?

hello, what about a google sheets addon, is the deploy option updating a published version?

hello, what about a google sheets addon, is the deploy option updating a published version?

I think there is no difference between sheet and doc.clasp deploy will create a new version number and deploymentId,but you must choose the deplomentID and publish manually

I'm developing an API executable, and encountered a similar issue.
I can create deployments via clasp, but I can't run these deployed API until I manually update the version via web console.

(new deployments exist, but not selected.)
Are there ways to update the published version via clasp?

It seems that clasp deploy a new deployment ID when not specified deployment ID with -i parameter.
So if your just updating a web app using latest code, just get url from apps script website
which like this https://script.google.com/macros/s/{deploymentID}/exec
and specify -i parameter with deploymentID when new code deploy
example command: clasp push && clasp deploy -i deploymentID

This worked for me.
Before:

Find deployment ID related to actual web-app serving version:
> clasp deployments
5 Deployments.
- AK************Z2XE @HEAD
- AKf*************Pg @6
- AK************nBPw @9
- AKfy************Fg @10 - web app meta-version
- AK**************3Q @11

Identify the version with "web app meta-version".
Perform
clasp deploy -i AKfy************Fg
And with this I'll get a webapp updated to newest version. Sadly... after this modification the "web app meta-version" is no longer displayed, so I solved like this: make sure to having the webapp always be served by latest version, so you can simply get the latest deployment id

I found this trick working for deploy a new version of webapp.
clasp deployments

Select the version (if exists ) where there is web app meta-version attribute
I attribute is not found, use the last deployment id

LAST_DEPLOYMENT_ID=$( clasp deployments | pcregrep -o1 '\- ([A-Za-z0-9\-\_]+) @\d+ - web app meta-version' )
	if [ -z "$LAST_DEPLOYMENT_ID" ]
	then
		LAST_DEPLOYMENT_ID=$( clasp deployments | tail -1 | pcregrep -o1 '\- ([A-Za-z0-9\-\_]+)' )
	fi

After selecting deploment ID, proceed with
clasp deploy --deploymentId $LAST_DEPLOYMENT_ID

I found that web app meta-version attribute only appaers when web-app application is update from AppsScript code editor, so we need to consider the deploymentIDs order to get the proper version.
Also the webapp should remain published to last existing version or the "select last row" trick will not work.
I tried a couple of times and seems to work, you can try and test as well.

Summarizing:

There is a difference between version and deployment. A version is similar to a git tag, while a deployment is actual code available for execution and accessible at https://script.google.com/macros/s/{deploymentID}/exec
list of available deployments can be obtained by running clasp deployments
there is always only one published deployment which is available for end-users. The published deployment is is flagged as web app meta-version in the list of deployments.
clasp deploy creates new deployment if no deploymentId is specified and creates new version if no version is specified
new deployments are useful for testing before making them default (using link mentioned in point 1)
in order to make version available for end-users you have to publish it by deploying it into published deployment by running
clasp --deploymentId {published_deployment_id} --version {selected_version_here}

So the process:

use clasp deployments and

select one deployment you will use for testing => test_deployment_id
get published deployment (one having web app meta-version flag) => pub_deployment_id

modify your code
clasp push
clasp deploy --deploymentId $test_deployment_id creates version => new_version
test your version at
https://script.google.com/macros/s/{test_deployment_id}/exec
if satisfied, deploy your version into published deployment
clasp deploy --deploymentId $pub_deployment_id --versionNumber $new_version

So, in the end it looks that clasp deploy works as designed. What's missing is the documentation :-)

https://script.google.com/macros/s/{test_deployment_id}/exec

When I deploy my test_deployment_id and tries to open it on the browser, it redirects to
https://script.google.com/a/macros/safewebmed.com.br/s/{test_deployment_id}/exec
and shows an error page:
Sorry, unable to open the file at this time.
Please check the address and try again.
Get stuff done with Google Drive
Apps in Google Drive make it easy to create, store and share online documents, spreadsheets, presentations and more.
Learn more at drive.google.com/start/apps.

regarding @sovcik Summarizing
in item 6 of first ordered list

in order to make version available for end-users you have to publish it by deploying it into published deployment by running
clasp --deploymentId {published_deployment_id} --version {selected_version_here}

sub-command  deploy is occasionally omitted after clasp, Presumably:
clasp deploy --deploymentId {published_deployment_id} --version {selected_version_here}

test your version at
https://script.google.com/macros/s/{test_deployment_id}/exec

after doing that step, the browser autoredirects to https://script.google.com/a/macros/mydomain.com/s/{test_deployment_id}/exec
and the page shows this error:
Sorry, unable to open the file at this time.
Please check the address and try again.
Would really like to get this working.

Ok, I think I finally understood wtf was going on here. If you deploy a dev change, you need to specify also the description (example: clasp deploy -V 249 -d "web app meta-version" -i AKfycbwGoFhpo5qekznUEn9z4Crt9BtFz0ubDsjK9sNlcJz0xTroscdU) otherwise the web app meta-version tag get wiped and the app is not available for /dev anymore. Remember, when redeploying, add the -d parameter ! The documentation is not clear in this respect.

Apparently, when we execute clasp deploy, the command forgets to create an entry point to the webapp. See below:
Entry points after deploying from clasp:
    {
      "deploymentId": "AKfycbwGoFhpo5qekznUEn9z4Crt9BtFz0ubDsjK9sNlcJz0xTroscdU",
      "deploymentConfig": {
        "scriptId": "1jeLVzVdwPdBX5prcwCUeTc4nkQ8XAxFSd7QcuJJ96MB_UozF0iUMShiO",
        "versionNumber": 251,
        "manifestFileName": "appsscript",
        "description": "web app meta-version"
      },
      "updateTime": "2020-06-23T08:08:57.828Z",
      "entryPoints": [
        {
          "entryPointType": "EXECUTION_API",
          "executionApi": {
            "entryPointConfig": {
              "access": "ANYONE"
            }
          }
        }
      ]
    }

Entry points after deploying from the Script Editor:
{
      "deploymentId": "AKfycbwGoFhpo5qekznUEn9z4Crt9BtFz0ubDsjK9sNlcJz0xTroscdU",
      "deploymentConfig": {
        "scriptId": "1jeLVzVdwPdBX5prcwCUeTc4nkQ8XAxFSd7QcuJJ96MB_UozF0iUMShiO",
        "versionNumber": 251,
        "manifestFileName": "appsscript",
        "description": "web app meta-version"
      },
      "updateTime": "2020-06-23T08:10:12.540Z",
      "entryPoints": [
        {
          "entryPointType": "WEB_APP",
          "webApp": {
            "url": "https://script.google.com/macros/s/AKfycbwGoFhpo5qekznUEn9z4Crt9BtFz0ubDsjK9sNlcJz0xTroscdU/exec",
            "entryPointConfig": {
              "access": "ANYONE_ANONYMOUS",
              "executeAs": "USER_DEPLOYING"
            }
          }
        },
        {
          "entryPointType": "EXECUTION_API",
          "executionApi": {
            "entryPointConfig": {
              "access": "ANYONE"
            }
          }
        }
      ]
    }

This is why we get a Drive Error when, after deploy from clasp, we try to enter the /dev page.

https://script.google.com/macros/s/{test_deployment_id}/exec

When I deploy my test_deployment_id and tries to open it on the browser, it redirects to https://script.google.com/a/macros/safewebmed.com.br/s/{test_deployment_id}/exec and shows an error page: Sorry, unable to open the file at this time.
Please check the address and try again.
Get stuff done with Google Drive
Apps in Google Drive make it easy to create, store and share online documents, spreadsheets, presentations and more.
Learn more at drive.google.com/start/apps.

I started using Clasp today and can confirm this issue still persists (following same steps) to this day. Any workaround available for this?

somehow i found the solution for this.
The expected behavior:

Let's say, the existing deployment id is "AKfycbwGoFhpo5qekznUEn9z4Crt9BtFz0ubDsjK9sNlcJz0xTroscdU"
last deployed version is 25

I want to deploy the app with the same deployment ID but a new version.
when we do clasp deploy it generates a new deployment ID and a new version, which is not the expected behavior, as we don't want a new deployment ID.
The right way:
clasp version && clasp deploy -i AKfycbwGoFhpo5qekznUEn9z4Crt9BtFz0ubDsjK9sNlcJz0xTroscdU -V 26

clasp version will create the next version (25 -> 26) but doesn't deploy the app.
clasp deploy -i <deployment ID> -V <version number> command is to redeploy app with same deployment ID and with the existing version, which we created using clasp version

authors: NicolaSpreafico RomainVialard Ryangr0 TrojanCoder Yancy-Godoy anbuchelva andysumi brianchul campionfellin darul75 grant iaindooley jhairau jooohn kpoman lgordey onlinelaser pablodonayre satetsu888 shai sovcik vuGitH zffocussss

repo: google/clasp


text:
Add warning_level VERBOSE to travis

Make the compilation test stricter by setting --warning_level VERBOSE to make the task compile clean, I've disabled the deprecation warnings and removed a couple files that depend on non-standard externs:
promise/testsuiteadapter.js
osapi/osapi.js
svgpan/svgpan.js
and excluded "*tester.js" (unit test support files that conflict with each other).

https://travis-ci.org/google/closure-library/builds/74149678 seems like something is wrong with Travis and/or the config.

@joeltine I'm not sure what you are trying to point out.

Oh, it had been running for ~4hrs when I checked it last night. I thought something was wrong.

authors: concavelenz joeltine

repo: google/closure-library


text:
Feature request: Add cisco ip sla probes support

cisco ip sla feature allows to probe between devices using icmp, tcp and udp. based on https://tools.ietf.org/html/rfc6812#section-3.1.2
I would be a nice to have that cisco can probe to a cloudprober server using udp or tcp. And also cloudprober to support probes hitting a cisco device consifured with ip sla responder as a udp echo.

@fcastello  @manugarg Could you please share a configuration of the UDP Probe ?

@fcastello  @manugarg Could you please share a configuration of the UDP Probe ?

authors: fcastello xuanyuanaosheng

repo: google/cloudprober


text:
Add a way to specify HTTP "Host" header based on targets

@JohnWillker wrote in #437.
There's another problem here. If the service is in a different namespace from the default, the Host header is sent incomplete.
I don't know, maybe something here?
https://github.com/google/cloudprober/blob/dd0bb3e2e8a54038da64c9b092db2f8941ecb69c/probes/http/request.go#L54
Is sent only the service name(i think).
If you are using Istio this not work, you need to pass the entire FQDN like: service.namespace.svc.cluster.local
Because this cause upstream connect error
Look:
Without FQDN:
root@debug:/# curl  http://10.4.15.152:8800/healthz -v -H "Host:payout-http"
*   Trying 10.4.15.152...
* TCP_NODELAY set
* Connected to 10.4.15.152 (10.4.15.152) port 8800 (#0)
> GET /healthz HTTP/1.1
> Host:payout-http
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 503 Service Unavailable
< content-length: 95
< content-type: text/plain
< date: Wed, 05 Aug 2020 15:57:19 GMT
< server: envoy
<
* Connection #0 to host 10.4.15.152 left intact
upstream connect error or disconnect/reset before headers. reset reason: connection termination

With FQDN:
root@debug:/# curl  http://10.4.15.152:8800/healthz -v -H "Host:payout-http.example-prod.svc.cluster.local"
*   Trying 10.4.15.152...
* TCP_NODELAY set
* Connected to 10.4.15.152 (10.4.15.152) port 8800 (#0)
> GET /healthz HTTP/1.1
> Host:payout-http.example-prod.svc.cluster.local
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 204 No Content
< date: Wed, 05 Aug 2020 15:57:58 GMT
< x-envoy-upstream-service-time: 6
< server: envoy
<
* Connection #0 to host 10.4.15.152 left intact

Are causing problems in all targets.
I0805 14:35:45.535230       1 http.go:258] Target:payout-http:8800, URL:http://10.4.15.152:8800/healthz, response: upstream connect error or disconnect/reset before headers. reset reason: connection termination
I0805 14:35:45.535516       1 http.go:258] Target:risk-evaluator:5000, URL:http://10.4.0.38:5000/healthz, response: upstream connect error or disconnect/reset before headers. reset reason: connection termination
I0805 14:35:45.535792       1 http.go:258] Target:validation-app:80, URL:http://10.4.15.88:80/healthz, response: upstream connect error or disconnect/reset before headers. reset reason: connection termination
I0805 14:35:45.535969       1 http.go:258] Target:payout-http:8800, URL:http://10.4.15.152:8800/healthz, response: upstream connect error or disconnect/reset before headers. reset reason: connection termination

It seems we need a way to specify host headers based on targets, for example, we should be able to add something like the following in probe config:
header {
  name: "Host",
  value:  "@target.name@. @target.label.namespace@.svc.cluster.local"
}

@JohnWillker,
https://github.com/google/cloudprober/pull/444 implements a change that will allow you to specify target based host headers using a target label - "fqdn".
Can you add "fqdn" label to the service that you're creating in Kubernetes?

@JohnWillker,
#444 implements a change that will allow you to specify target based host headers using a target label - "fqdn".
Can you add "fqdn" label to the service that you're creating in Kubernetes?

@manugarg Perfectly, now everything is working as expected. I'm using the "fqdn" label and solve the connections problems.
Thank you again.

Excellent. Thanks again for reporting this and the other issue.

authors: JohnWillker manugarg


text:
User-reported unhelpful error message

Program: https://code.world/haskell#
Message:
program.hs:58:20-27: error: Outdated use of grey as a function.
    Remove the function argument for a medium shade of grey.
    For a different shade of gray, use light, dark, or HSL.

This is almost surely not really a misleading error.  But I'm concerned that we're once again getting reports without a hash in the URL.  Seems reminiscent of #1130.  But I'll close now, and deal with it if it's a problem again in the future.

authors: cdsmith codeworld-feedback

repo: google/codeworld


text:
change the NodeList.ForEachCallbackFn.onInvoke second parameter type from double to int

The second parameter of the NodeList.ForEachCallbackFn.onInvoke method represent an index and is supposed to be int according to :
https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach

LGTM!
Thanks for the patch, I'll import it right now

Oh I am sorry i thought this was already merged and started preparations for a new PR.
I am really sorry.

No problem, I saw the second change and I was ok with.

authors: jDramaix vegegoku


text:
change default to fail on audience mismatch

Fixes #1126
Proposed Changes

FEATURE_FAIL_ON_CERTIFICATE_AUDIENCE_MISMATCH  set to true by default

Release Note
ATTENTION SERVER OPERATORS:
This changes verification certificate enforcement to require an exact match on the AUD field. Servers running v0.15.1 will see advisory ERROR log messages indicating a mismatch. Please address these errors with your verification server operating partners before upgrading to v0.16.0

/hold
Please review. Will release hold before we cut the v0.16.0 release (target of 11 Nov 2020)

/lgtm

/unhold
in advance of v0.16.0

authors: mikehelmick sethvargo

repo: google/exposure-notifications-server