text:
🛑 orkut is down

In 7361998, orkut (orkut.co.in) was down:

HTTP code: 0
Response time: 0 ms

Resolved: orkut is back up in 8658b86 after 8 minutes.


text:
Optimize latest project update query

Related to:https: //github.com/Giveth/impact-graph/issues/1086

Further optimization from what I did in this PR, breaks a bunch of tests. I am somewhat stuck on that.

@MoeNick @aminlatifi can review again

source: gharchive/pull-request

repo: Giveth/impact-graph

license: MIT

license_type: permissive

license_source: github-api


text:
Gradle can't find the "Nameplate" Library, and hence the build fails

I'm deciding to move this from the Discord over onto Github so that this issue can be indexed through a search.
Basically, I am playing on Minecraft 1.19.3, and I found this mod to be interesting, and tried to apply the prebuilt jar from CurseForge. However, the game doesn't launch and comes with this error:
[14:22:58] [main/ERROR]: Minecraft has crashed!
net.fabricmc.loader.impl.FormattedException: java.lang.NoSuchFieldError: field_23781
	at net.fabricmc.loader.impl.FormattedException.ofLocalized(FormattedException.java:63) ~[fabric-loader-0.14.19.jar:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:464) ~[fabric-loader-0.14.19.jar:?]
	at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.14.19.jar:?]
	at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.14.19.jar:?]
	at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:88) ~[NewLaunch.jar:?]
	at org.prismlauncher.EntryPoint.listen(EntryPoint.java:126) ~[NewLaunch.jar:?]
	at org.prismlauncher.EntryPoint.main(EntryPoint.java:71) ~[NewLaunch.jar:?]
Caused by: java.lang.NoSuchFieldError: field_23781
	at net.minecraft.class_5134.handler$zkh000$rpgdifficulty$registerMixin(class_5134.java:519) ~[client-intermediary.jar:?]
	at net.minecraft.class_5134.method_26871(class_5134.java) ~[client-intermediary.jar:?]
	at net.minecraft.class_5134.<clinit>(class_5134.java:7) ~[client-intermediary.jar:?]
	at net.minecraft.class_1294.<clinit>(class_1294.java:15) ~[client-intermediary.jar:?]
	at net.minecraft.class_2246.<clinit>(class_2246.java:262) ~[client-intermediary.jar:?]
	at net.minecraft.class_2358.method_10199(class_2358.java:325) ~[client-intermediary.jar:?]
	at net.minecraft.class_2966.method_12851(class_2966.java:46) ~[client-intermediary.jar:?]
	at net.minecraft.client.main.Main.method_44604(Main.java:161) ~[minecraft-1.19.3-client.jar:?]
	at net.minecraft.client.main.Main.main(Main.java:51) ~[minecraft-1.19.3-client.jar:?]
	at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:462) ~[fabric-loader-0.14.19.jar:?]
	... 5 more
Process exited with code 1.

I thought this was an error because of an incompatibility with 1.19.2 and possibly some of the fabric libraries, so I intend to try and update this project to 1.19.3 (and 1.19.4, more than likely). I cloned the repository, and I just decided to run gradle on the repository, just to see if the project builds. Unfortunately, I run into this error with Gradle.
> Configure project :
Fabric Loom: 1.1.14
Found existing cache lock file, rebuilding loom cache. This may have been caused by a failed or canceled build.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'RpgDifficulty'.
> Could not resolve all files for configuration ':modCompileOnly'.
   > Could not find com.github.Globox1997:Nameplate:1.19-SNAPSHOT.
     Searched in the following locations:
       - file:/home/morxemplum/Gits/RpgDifficulty/.gradle/loom-cache/remapped_mods/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/maven-metadata.xml
       - file:/home/morxemplum/Gits/RpgDifficulty/.gradle/loom-cache/remapped_mods/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.pom
       - file:/home/morxemplum/.gradle/caches/fabric-loom/minecraftMaven/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/maven-metadata.xml
       - file:/home/morxemplum/.gradle/caches/fabric-loom/minecraftMaven/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.pom
       - file:/home/morxemplum/Gits/RpgDifficulty/.gradle/loom-cache/minecraftMaven/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/maven-metadata.xml
       - file:/home/morxemplum/Gits/RpgDifficulty/.gradle/loom-cache/minecraftMaven/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.pom
       - https://maven.fabricmc.net/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/maven-metadata.xml
       - https://maven.fabricmc.net/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.pom
       - https://libraries.minecraft.net/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/maven-metadata.xml
       - https://libraries.minecraft.net/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.pom
       - https://libraries.minecraft.net/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.jar
       - https://repo.maven.apache.org/maven2/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/maven-metadata.xml
       - https://repo.maven.apache.org/maven2/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.pom
       - https://maven.shedaniel.me/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/maven-metadata.xml
       - https://maven.shedaniel.me/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.pom
       - https://maven.terraformersmc.com/releases/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/maven-metadata.xml
       - https://maven.terraformersmc.com/releases/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.pom
       - https://jitpack.io/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/maven-metadata.xml
       - https://jitpack.io/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.pom
       - https://maven.bai.lol/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/maven-metadata.xml
       - https://maven.bai.lol/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.pom
       - https://www.cursemaven.com/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/maven-metadata.xml
       - https://www.cursemaven.com/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.pom
       - https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/maven-metadata.xml
       - https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/com/github/Globox1997/Nameplate/1.19-SNAPSHOT/Nameplate-1.19-SNAPSHOT.pom
     Required by:
         project :

It seems like the error is coming from Gradle not being able to find the proper build of the "Nameplate" Library, and hence can't progress further with the build. When talking with @Globox1997 about this, they claim that Jitpack, one of the repositories hosting the library, didn't have the latest build working.
If you are curious about the Gradle daemon, here is the --version info. The JVM shouldn't matter, as the gradle build specifies to use Java 17.
------------------------------------------------------------
Gradle 8.1
------------------------------------------------------------

Build time:   2023-04-13 09:32:00 UTC
Revision:     <unknown>

Kotlin:       1.8.10
Groovy:       3.0.15
Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
JVM:          1.8.0_362 (Oracle Corporation 25.362-b09)
OS:           Linux 6.2.11-arch1-1 amd64

Looking forward to keeping this mod alive! :)

This mod is definitely alive ;)
Use the modrinth maven just as I did since mc 1.20.

source: gharchive/issue


text:
Awesome Work Really Loved it.

Hello. I was wondering if there is a way to get full chapters instead of specific verses?

Hi Daniel,
Apologies for the extremely late response. Currently not unless you specify the entire verse range. I will look into adding this as it is a great feature to have.
Best Regards,
Glow


text:
Download Faces from Twitchemotes.com's API

This will prevent the stupid faces such as "A" or "Logo" or "Lose" etc from showing up.

I decided to go based off of emotesets, you can see my implementation in FaceManager of how I handle it.

repo: Gocnak/Botnak

license: mit

license_source: bigquery


text:
Adds Python Support for elasticlib

Used Black Formatting and WPI Format

Already am @Ryanforce08

This is a duplicate PR (#136 already exists)

Dang I did not see. yours is better anyways

i would recommend closing the PR then

Just realized mine has better docs is there away to add my docs to yours

Just realized mine has better docs is there away to add my docs to yours

I am copying the docs from the Java & C++ versions


text:
README: flags added

remove flag --locked in brooklyn dockerfile
usefull flags instructions added

@OleksandrMigalaty Also we need to add --locked to Dockerfile.sydney image.

authors: OleksandrMigalaty serkanyazici

repo: GoldenGateGGX/golden-gate


text:
The "GoodMarket" title aren't display correctly on iOS devices

User have the eWallet
Steps to reproduce:

Tap the "GoodMarket" icon
Pay attention at the GoodMarket logo

Actual result: The GoodMarket logo is
Expected result: The "Rewards" and "GoodMarket" tabs always displayed as the header for iframe
Environment: eWallet
Device used:
iPhone XS // iOS 13.1
iPhone 6 Plus // iOS 12.4
Pre-condition:

@AnastasiiaOdnoshevna can you attach an image, not sure I understand.

@sirpy
Left part is Android device and "GoodMarket" logo looks good.
Right screenshot is the iOS device and logo image is a bit elongated vertically. It shouldn't look like that

thats the expected behaviour on ios

authors: AnastasiiaOdnoshevna sirpy

repo: GoodDollar/GoodDAPP


text:
Page.waitForSelector timeout issue with parallel page tests in a single browser instance

The following code is giving me issues: (Explanation below)
// My tests contain about 30 pages I want to test in parallel
const aBunchOfUrls = [
  {
    desc: 'Name of test #1',
    url: SOME_URL,
  },
  {
    desc: 'Name of test #2',
    url: ANOTHER_URL,
  },
  // ... snip ...
];

const browserPromise = puppeteer.launch();

// These test pass! And rather quickly. Slowest link is the backend server.
// They're running concurrently, generating a new page within the same browser instance
describe('Generate about 20 parallel page tests', () => {
  aBunchOfUrls.forEach((testObj, idx) => {
    it.concurrent(testObj.desc, async () => {
      const browser = await browserPromise;
      const page = await browser.newPage();

      await page.goto(testObj.url, { waitUntil: 'networkidle' });
      await page.waitForSelector('#content');

      // assert things..
    });
  });
});

// This test will cause `waitForSelector` to time out, but, as the logging shows, the classnames are
// present in the document at the time of timeout
describe('Another test that times out =(', () => {
  it('Shouldnt time out', async () => {
    const browser = await browserPromise;
    const page = await browser.newPage();

    await page.goto(
      ROOT_URL,
      { waitUntil: 'networkidle' },
    );

    await page.waitForSelector('#content');

    try {
      const classNameBefore = await page.evaluate(() => {
        return document.getElementById('global-loading-spinner').className;
      });
      console.log(`${classNameBefore}`); // Logs: "global-loading-spinner"

      await page.waitForSelector('.hidden', { timeout: 10000 });
    } catch (e) {
      const classNameAfter = await page.evaluate(() => {
        return document.getElementById('global-loading-spinner').className;
      });

      // The log statement below contains the classname we were waiting for!
      console.log(`${classNameAfter}`); // Logs: "global-loading-spinner hidden"
      throw e;
    }

    // Assert things..
  });
});

The second test only times out (sporadically) after hammering the browser with concurrent page tests. Every time it times out, the evaluate/log combo shows the classname we're waiting for is present in the document.
Before I go and try to set up a replication app or anything, I wanted to see if there was any ideas on why this was happening.
Thanks much! I'll try to replicate in a sandbox if it helps.

Quick question: would it timeout for you is you pass in visible: true?
await page.waitForSelector('.hidden', { timeout: 10000, visible: true });

@aslushnikov it passes when I pass that option, but only due to CSS visibility transition being enabled =) When I disable the CSS transition, it fails again.
Essentially I'm trying to do the opposite of visible: true. When hidden happens, for all intents and purposes, we should assume there's no css transition and the element has disappeared.
Is this a problem where waitForSelector isn't expecting that case? Should we add a notVisible option?
Lastly, would a small test repo for this help out?

I also just tried the original code, but with CSS transitions disabled for my element. Same failure.

I think the problem may be here: https://github.com/GoogleChrome/puppeteer/blob/151d512ae2d652d8bc91db1ebcb635fd24a45d1a/lib/FrameManager.js#L498-L501
MutationObserver isn't firing when I directly modify the className on the DOM in my code:
document.getElementById('global-loading-spinner').className = 'global-loading-spinner hidden';
Should the attributes option be added to the observer so it fires?

Adding this to my local copy seems to fix it.

Created PR @ #499

What is this using? it.concurrent is not a function

authors: aslushnikov quicksnap stevenlafl

repo: GoogleChrome/puppeteer


text:
SWLib Docs should show some usage plugins as well

Library Affected:
sw-lib
Browser & Platform:
All
Issue or Feature Request Description:
Doc enhancement
SWLib package brings a higher level framework kind of encapsulation for components from multiple packages(e.g. sw-runtime-caching). Although bringing all of the encapsulated package's documentation won't ever make sense, but I guess one feature that should be highlighted in the docs of SWLib is the way you add external plugins in handlers encapsulated in SWLib.
https://googlechrome.github.io/sw-helpers/reference-docs/stable/v0.0.7/module-sw-lib.html
^ URL does not currently highlight this thing. Doing so will ease the Dev's journey to plug and play responsive-image and background-sync queue plugins.

Would this just require surfacing the example from "RuntimeStrategyOptions" from this page more prominently?

yeah,
Just making sure that devs would know very clearly that this lib is extensible with plugins as well.

Calling out that we have an external plugin story seems like an important high-level topic for the documentation. @prateekbh Is there anything more beyond surfacing the RSO example that you would suggest adding here to help make it clear we work well with plugins?

I guess I am missing something,
https://github.com/prateekbh/Guess/blob/master/sw.js#L33
Here I am trying to add background-sync to my sw with sw-lib but it seems RequestWrapper is not exported from sw-lib.
Is there a way I add custom plugins into handlers of sw-lib ?

Pings on hangouts but will put here. See RuntimeStrategyOptions: https://googlechrome.github.io/sw-helpers/reference-docs/stable/v0.0.7/module-sw-lib.SWLib.html#.RuntimeStrategyOptions

authors: addyosmani gauntface prateekbh

repo: GoogleChrome/sw-helpers


text:
Add encode setup time, increase timer, remove spaces for functions

Increase test duration to 8 (was 5) seconds to allow Mac enough time to start capture.
Increase stats gathering frequency to 100 (was 1000) ms.
Removed spaces in functions before ( braces.
Report encode setup time, basically how long it takes from start gathering stats until getStats reports back non zero input frame rate.

There were some JSCS errors about callbacks not being defined and local variables being declared several times in for in loops.

I've merged master and the soon to land pull request for issue #412 . So once pull request for #412 lands  the commits will be squashed right? Leaving the merge and Fixed grunt errors commits?

Basically do nothing until #412 is on Master.

#412 is now closed hence a merge can be done.

PTAL

Ping

repo: GoogleChrome/webrtc


text:
Uncaught TypeError: quota_mjs.registerCallback is not a function

Library Affected:
workbox-cache-expiration
Browser & Platform:
All browsers
Issue or Feature Request Description:
Hi,
I'm trying to use the new purgeOnQuotaError option but I'm getting the following console error:

Looking at the PR of the change seems that the import is done from the workbox-core/_private/quota.mjs file directly, but while debugging the method seems that the iife ran passing the code workbox-core/_private.mjs, as you can see the quota_mjs object having the registerQuotaErrorCallback function but not the other one. I'm not familiar with the compilation process, so I don't really know where that module comes from or if I'm doing something wrong myself.
I'm using workbox 3.3.0 and generating the SW file with the generateSW entry point. Thank you!

Sorry—this is fixed by #1552, and should make it into an upcoming v3.3.1 release.

@salmoro #metoo

I've created #1642 issue to track this.

authors: jeffposnick rejhgadellaa salmoro xe21500

repo: GoogleChrome/workbox


text:
Explicitly specify the "C" compilation language

Use the "-xc" compiler flag when compiling C (not C++) source files.
This is needed when compiling with recent compiler versions (e.g., Clang
13); previously the compiler was automatically selecting the language
based on the input file's extension.

LGTM - But it is surprising to me that this is necessary, we don't need this flag for NaCl (perhaps because there, we specify something like -std=gnu99, which implies C?)

Yeah I suspect it's something that LLVM changed recently, and both NaCl and Emscripten still use the older version that guesses the language itself.

Actually, both NaCl and Emscripten are (also) using an even newer version of LLVM (near ToT) which (at least for NaCl) does not require this

Actually, both NaCl and Emscripten are (also) using an even newer version of LLVM (near ToT) which (at least for NaCl) does not require this

Interesting! So if I revert this PR locally and use the stock LLVM/Clang (13.0.1-3+build2), I'm getting these warnings:
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]

and then a bunch of failures because it tries to compile C code as C++.

Hm, which binary is used to compile the C files? In the NaCl builds, we use clang for C and clang++ for C++.

Hm, which binary is used to compile the C files? In the NaCl builds, we use clang for C and clang++ for C++.

We use "emcc" in Emscripten; somehow it's guessing the language automatically, without any warnings.
For NaCl, it turns out the makefiles provided by the NaCl SDK check the source file's extension and choose between "pnacl-clang++" and "nacl-clang".
Maybe I was wrong when testing the stock Clang because I used "clang++" for compiling everything. Probably I should've used "clang"? Let me try that out.

Maybe I was wrong when testing the stock Clang because I used "clang++" for compiling everything. Probably I should've used "clang"? Let me try that out.

Yeah, looks like "clang" autodetects the input language correctly, without any warnings. I suppose I still have to use "clang++" for the linking stage, in order to link against the C++ standard library, but that's fine.
Alright, let me revert the current PR. Thanks for bringing this up!

authors: Fabian-Sommer emaxx-google


text:
pptr.dev shows blank page in a case if service worker is not available

pptr.dev uses service worker as its core, but it is possible that service workers are not available. It can be so in older browers, but service workers are also disabled in Firefox when page is open in private browser mode (see reference in documentation and issue). It makes site to display blank page without giving any information for the visitor about reason of the problem.
It would be good to display something on the page in a case if service worker is not available in browser so users will not stuck.

Interesting! I wonder why absense of service worker support results in an empty page: the website should load just fine from network.
Thanks for reporting this.

ETA on a fix for this?  I browse in private mode almost exclusively and this issue is problematic.

It turns out this happens because Firefox Private Browsing prohibits use of IndexedDB.
https://pptr.dev uses IndexedDB to cache documentations and release information for puppeteer versions. Caching is important so that we don't hit github/npm too much.
To fix Firefox Private Browsing, we will need to add a fallback to localstorage.

For the record: this is a long-standing firefox bug - https://bugzilla.mozilla.org/show_bug.cgi?id=781982

Fixed and deployed a new website version - please check it out.

It works now, thank you!!

authors: FlyingDR aslushnikov saberworks


text:
[QA] CDP Switch

Scenarios verified for CDP Switch

Scenario
Status
Remark/ Notes

By default, Use CDP switch will be disabled

After installing the extension and opening a new URL, observe two things here:Ensure that the 'Use CDP' switch is offConfirm that the debugger notice is not visible

Turning on CDP: Debugger notice should appear (may take a moment) No errors should occur on the chrome://extension page.Page will be auto-refreshed for accurate information.Blocked cookies should be highlighted in yellow.Blocked reason should be visible when user clicks on blocked cookie.

Turning off the CDP:The debugger notice should disappear; please allow some time for this change.No errors should occur on the chrome://extension page.Page will be auto-refreshed to obtain the correct information.Blocked cookies should no longer be highlighted in yellow.

Clicking on "Analyse this tab" button from the popup and cookies landing page should not throw any errors.

Blocked cookie count should not have discrepancies in a single tab and multi-tab.

Switching on/off from a different tab should effectively work on the current tab being analysed.

Cancelling the debug bar and turning off the CDP switch should result in refreshing the page and fetching the correct result.

[x] Issue with CDP Switch Handling: Debugger Notification, Blocked Cookie Count, and Sidebar Display
[ ] Suggestion to add tooltip
[x] Page is not refreshed after canceling Debug Bar with CDP Switch OFF
[x] Inconsistent behavior when testing CDP Switch in Multi-Tab environment
[x] Unexpected cookie count issue after the switch is on/off
[ ] ~[Issue while switching from Multi-Tab to Single Tab]~(https://github.com/GoogleChromeLabs/ps-analysis-tool/issues/410#issuecomment-1886733632)
[ ] Evaluating the need for additional labels in Popup for CDP Switch
[x] Issue with Cookie count: Delayed Loading or Incorrect Values in multi tab environment 🤔
[ ] There is a noticeable jumping effect while toggling the setting from DevTools

Consider a scenario where the CDP switch is turned ON, and the user clicks on the Analyse this tab button. However, within 4-5 seconds, the user switches it OFF. In most cases, PSAT effectively handles this scenario, but occasional issues have been identified as mentioned below:

The debugger notification sometimes fails to disappear and stays forever. It stays even while opening the new tab though the switch is off.
The blocked cookie count does not reset to zero. Ideally, when the debugger is not attached, it shouldn't fetch blocked cookie information.
The sidebar only displays only 2 frames: the Top main frame and Unknown frames.

@amovar18 Could you kindly debug these issues? Additionally, it has been noted that other tabs also exhibit inaccurate results in this particular case.
I have found this use case but I was unable to capture the visual as it appears randomly.

In principle the Info Bar (IB) needs to be closed explicitly by the user. The use case for PSAT entails the user swiching off PSAT's use of CDP, and manually closing the IB. After that the IB won't show up again.
Once the user switches CDP off, PSAT will refresh the loaded page and the whole Blocked Cookies section the Cookies landing page will be rendered.

PSAT does not work as expected when the CDP switch is turned off under the following conditions:

Turn on CDP switch form the Popup.
Observe the appearance of the debug bar and the page refreshing.
Now, cancel the debug bar.
Turn off the CDP switch.
Observe that the page is not refreshed, resulting the data displayed from the previous state.

Please check the visual attached.
https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/15173772/45cdcb68-53b0-4723-b038-ee31dc311757

Please check the screenshot.

Scenario: Testing the CDP switch on/off operation with multiple tabs.
As per the expected behaviour when the switch status is toggled, a page refresh must occur. However, this functionality does not synchronize properly when multiple tabs are in use. Please consider the scenario when one tab displays a blocked cookie with the switch off, toggling the state refreshes the page, but the cookies landing page does not refresh, resulting in inconsistent outcomes. Additionally, it has been observed that the cookie count does not reset and it continues from where it left off.
Please check the below visual
https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/15173772/3ae8688e-f351-42cf-9cf1-55d8caaadf57

After refreshing the page, it has been observed that the cookie count resets to "0". As a user, one would expect the count to increase gradually. However, the current behavior results in a sudden change to a large number, for e.g from 0 to 37 which should be prevented.
Please check the below visual.
https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/15173772/925a74f0-4a6f-4391-8841-11e5546fbfc9

@kjnanda as for the last Issues reported its because the page is loaded 2nd time and the cookies are already set in the browser that's why you see the jump in the cookie count.

Upon switching from multiple tabs to a single tab, the expected behavior is for the "Analyse this tab" button to appear on all open tabs. However, an occasional bug has been observed where one of the tabs continues to display the cookie. Upon repeating the process, the button appears as expected. This issue does not consistently manifest, but the following test environment details may help in debugging:

Open a new Chrome profile
Open a new tab and enter the URL
Repeat the same process for 2 or 3 additional tabs
Navigate to PSAT options and switch the setting from Single tab to Multi tab
Note that each tab will display the cookie
Revert the settings from multi tab to single tab
Observe that one of the tabs (usually the first tab) displays the cookies instead of the "Analyse this tab" button
Repeat steps 4-7 and note that the same scenario does not occur

Please refer to the provided visual.
https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/15173772/d387ddc1-2409-4fe1-8a2f-dccb4c7d85f3

The UI element is intuitive which clearly indicates its switch functionality with a visual effect of both the 'On' and 'Off' states. Considering this, is it necessary to incorporate a separate label as 'Switch On' or 'Switch Off'?

I've noticed that the tool requires more time than anticipated to display cookies. Also, there is an issue where it occasionally indicates '0' number for cookies.
Please refer to the attached screenshot, which illustrates that 'https://www.livemint.com/' site shows 0 FPCs, while the stable version consistently provides the accurate count of cookies. This situation may also occur for 3PCs or Blocked Cookies.

[!NOTE]
This has been noticed in multi tab environment only.

Please check the below visual:
https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/15173772/271d3c47-6bfd-42ae-9729-7b1280fe36da

@amovar18 Ref: https://github.com/GoogleChromeLabs/ps-analysis-tool/issues/410#issuecomment-1886488005

because the page is loaded 2nd time and the cookies are already set in the browser that's why you see the jump in the cookie count.
Got it.

But I have a query when I opened up the website for the first time the cookie count got increased from 1 to 24/25. Is there any chance of improvement in this case?
https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/15173772/50e1211f-5a31-45c3-a077-d0aa8a07dfb0
PS: The above scenario was QAed with the latest code pull from the given branch.

But I have a query when I opened up the website for the first time the cookie count got increased from 1 to 24/25. Is there any chance of improvement in this case?

I don't think so because if a single request has that many cookies then the count will definitely appear like that. SInce all of them are added to the database in a single update.

There is a noticeable jumping effect while toggling the setting from DevTools for CDP Swtich.
Please refer to the visual shared below.
https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/15173772/15aac9e6-4acf-4668-96d8-e237ef9db546

@kjnanda that might be because CDP debugger bar appears and extension page is pushed a bit down it was noticeable before is because the switch was in the popup. Could you check if the jumping effect is still there if cdp is toggled from popup.

@amovar18 There's a need for improvement in copy to clipboard. Currently, when the "Copy to Clipboard" button is clicked -

[ ]  It does not give any effect if the click event has happened or not.

[ ] The content gets copied, but there's no indication or message confirming the action. It would be good to display a message or some visual feedback to inform users that the content has been successfully copied.

[ ] When the copied content is pasted, its alignment does not look  intuitive to me

Settings Page > The color of the font should be black.

The border bottom is not present when Settings icon is collapsed.

https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/15173772/90309613-5874-4aa0-8c17-0153f3fa2388

After successfully attempting multiple clicks in the pop-up, along with toggling the PSAT DevTools Panel for CDP switch, it became unresponsive to further toggle events. Changing the switch state was no longer effective, and the debug bar did not disappear when the switch was turned off.
https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/15173772/33102b3f-8111-4f17-8788-1f4bd6331b78

The information menu should collapsible. I don't see the relevant drop down button.

@kjnanda the last item wasnt mentioned as being collapsable.

@amovar18 Could you please take a look at the design shared with us? I see the arrow over there. So considering that part I was looking for collapsible drop down. 💭

@amovar18 Please check the below comment with ref to https://github.com/GoogleChromeLabs/ps-analysis-tool/issues/410#issuecomment-1893590773
This does not show any distinction between the title and content that goes under the column header. May be should we keep the title in bold?

@amovar18 I have found some unexpected cookie behaviour with multi tab processing under the given scenario.
Steps:

Open three different tabs and navigate to the specified URLs.
Activate the Chrome DevTools Protocol (CDP) mode and analyze one of the tabs.
Enable multi-tab processing using the switch provided in the settings.
Now, deactivate the CDP mode.
This will reload the page and will show the cookies other than blocked cookies.
Now, disable the multi-tab processing.
Observe that one of the tabs still displays a count on the cookie pop-up jar, which is not the expected behavior.

Now, please check the below visual. Here, please observe that when I keep the some delay in toggling the switches this works find but I try to perform the actions immediately then it ends up with cookie count on popup cookie jar and the count then remains forever.
https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/15173772/70512a91-48da-497a-8293-6b7dfc61f6e9

THe icons are not visible in light mode.
https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/15173772/2b1db5d3-9b25-4335-9c97-6ff338479686

@amovar18 PSAT sidebar icon needs to be bit smaller than the current size. Please refer to the screenshot below.

@amovar18 Please check the pointers wrt to the number mentioned in the screenshot.

It seems there is more gap between the icon and title. Can we reduce a bit?
I collapsible button needs padding from right side.

@amovar18, As the system information is collapsible, it would enhance user experience to include a hand pointer upon hovering over it. I've shared a visual below. Please observe how the hand pointer is utilised in the Settings section; I recommend implementing a similar behavior for the system information as well.
https://github.com/GoogleChromeLabs/ps-analysis-tool/assets/15173772/36a7538c-e96e-448e-811e-a504457201e1

Addressed and released as a part of v0.5

authors: amedina amovar18 kjnanda maitreyie-chavan

repo: GoogleChromeLabs/ps-analysis-tool


text:
'npm WARN EBADENGINE Unsupported engine' warnings after installing @squoosh/cli

Describe the bug
npm is throwing the following warnings after installing @squoosh/cli via the npm install @squoosh/cli --save-dev command:
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@squoosh/cli@0.7.2',
npm WARN EBADENGINE   required: { node: ' ^12.20.2 || ^14.13.1 || ^16.0.0 ' },
npm WARN EBADENGINE   current: { node: 'v17.0.1', npm: '8.1.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@squoosh/lib@0.4.0',
npm WARN EBADENGINE   required: { node: ' ^12.5.0 || ^14.0.0 || ^16.0.0 ' },
npm WARN EBADENGINE   current: { node: 'v17.0.1', npm: '8.1.0' }
npm WARN EBADENGINE }

Version:

OS w/ version: macOS 11.6.1
Node version: 17.0.1
npm version: 8.1.0

Is your issue related to the quality of image compression?
No

Duplicate of #1184 :)

@atjn Got it. Closing issue. thanks.

authors: atjn badfeather

repo: GoogleChromeLabs/squoosh


text:
Is there a way to run the build folder without setup a localhost?

I have tried to run the build folder by click on the index.html file and I have gotten the FILE_NOT_FOUND errors. Is there any way to run the build folder without setup a local host?

No, you need a proper HTTP server. Something as straightforward as npx superstatic build should work.

After building, npx serve --config ../serve.json build will serve with the correct headers

authors: jakearchibald ngvtuan surma


text:
Unsafe aliasing in rust when dropping the builder

Hi, I am trying to use this crate in Firefox 86.0.1 (linux), and when calling :
await initThreadPool(navigator.hardwareConcurrency)

I got the following errors :

Uncaught (in promise) Error: recursive use of an object detected which would lead to unsafe aliasing in rust
    __wbindgen_throw webpack://ra-wasm-demo/../pkg/wasm_demo.js?:500
    free webpack://ra-wasm-demo/../pkg/wasm_demo.js?:380
    startWorkers webpack://ra-wasm-demo/../pkg/snippets/wasm-bindgen-rayon-3d2df09ebec17a22/src/workerHelpers.js?:100
    __wbg_startWorkers_914655bb4d5bb5e1 webpack://ra-wasm-demo/../pkg/wasm_demo.js?:511
    initThreadPool webpack://ra-wasm-demo/../pkg/wasm_demo.js?:194
    <anonymous> webpack://ra-wasm-demo/./index.js?:148
    disposable webpack://ra-wasm-demo/./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneLanguages.js?:90
    fire webpack://ra-wasm-demo/./node_modules/monaco-editor/esm/vs/base/common/event.js?:481
    _getOrCreateMode webpack://ra-wasm-demo/./node_modules/monaco-editor/esm/vs/editor/common/services/modeServiceImpl.js?:96
    _createModeAndGetLanguageIdentifier webpack://ra-wasm-demo/./node_modules/monaco-editor/esm/vs/editor/common/services/modeServiceImpl.js?:84
    create webpack://ra-wasm-demo/./node_modules/monaco-editor/esm/vs/editor/common/services/modeServiceImpl.js?:72
    LanguageSelection webpack://ra-wasm-demo/./node_modules/monaco-editor/esm/vs/editor/common/services/modeServiceImpl.js?:27
    create webpack://ra-wasm-demo/./node_modules/monaco-editor/esm/vs/editor/common/services/modeServiceImpl.js?:70
    createTextModel webpack://ra-wasm-demo/./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneCodeEditor.js?:331
    StandaloneEditor webpack://ra-wasm-demo/./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneCodeEditor.js?:194
    create webpack://ra-wasm-demo/./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneEditor.js?:123
    withAllStandaloneServices webpack://ra-wasm-demo/./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneEditor.js?:110
    create webpack://ra-wasm-demo/./node_modules/monaco-editor/esm/vs/editor/standalone/browser/standaloneEditor.js?:122
    <anonymous> webpack://ra-wasm-demo/./index.js?:342
    js http://127.0.0.1:8080/app.bundle.js:63
    __webpack_require__ http://127.0.0.1:8080/app.bundle.js:7656
    <anonymous> http://127.0.0.1:8080/app.bundle.js:7916
    <anonymous> http://127.0.0.1:8080/app.bundle.js:7919
app.bundle.js line 30 > eval:500:15
    <anonymous> webpack://ra-wasm-demo/./index.js?:322

According https://github.com/rustwasm/wasm-bindgen/issues/1578 , this seem to be relate to &'mut and &' holder in different places but I could run it in Chromium without a problem.

I finally found out that Firefox raise an exception of " waiting is not allowed on this thread" and then I put everything inside another WebWorker and it works now.

Yes, it's something Chrome plans to forbid too, but hasn't done so yet.

repo: GoogleChromeLabs/wasm-bindgen-rayon


text:
Add query: WebP adoption by WordPress version.

Calculate the percent of pages that use WebP images, broken down by WordPress version and client (desktop/mobile)

version
pct_webp_mobile
pct_webp_desktop

6.0
0.092
0.173

5.9
0.067
0.154

5.8
0.054
0.14

5.7
0.032
0.12

5.6
0.028
0.12

5.5
0.026
0.117

5.4
0.026
0.118

5.3
0.024
0.113

5.2
0.02
0.111

5.1
0.014
0.102

5.0
0.014
0.107

4.9
0.012
0.098

4.8
0.011
0.097

4.7
0.009
0.091

4.6
0.008
0.08

4.5
0.008
0.079

4.4
0.011
0.092

4.3
0.008
0.073

4.2
0.008
0.081

4.1
0.006
0.08

4.0
0.008
0.072

3.9
0.004
0.069

Based on Oct 2022 data

@felixarntz this is updated now with the proper location and link.
I tested adding AND category='CMS' to the query (based on the comment on #18) and didn't see any change in the results - so leaving that off for now.

repo: GoogleChromeLabs/wpp-research


text:
Target for generating a CHANGELOG from GitHub Milestones.

github-changelog-generator creates some really nice CHANGELOGs and the newer version coming soon provides even more flexibility.
Sample changelog below :point_down:

Change Log
v0.2.rc (2018-05-22)
Full Changelog
Implemented enhancements:

Add liveness check to pkg/gameservers/controller. #116
helm namespaces #210 (Kuqd)
Fleet update strategy: Replace #199 (markmandel)
Status > AllocatedReplicas on Fleets & GameServers #196 (markmandel)
Creating a FleetAllocation allocated a GameServer from a Fleet #193 (markmandel)
Add nano as editor to the build image #179 (markmandel)
Feature/gometalinter #176 (EricFortin)
Creating a Fleet creates a GameServerSet #174 (markmandel)
GameServerSet Implementation #156 (markmandel)

Fixed bugs:

gometalinter fails #181
Line endings in Windows make the project can't be compiled #180
Missing links in documentation #165
Cannot run GameServer in non-default namespace #146
Don't allow allocation of Deleted GameServers #198 (markmandel)
Fixes for GKE issues with install/quickstart #197 (markmandel)
minikube-test-cluster needed the ensure-build-image dependency #194 (markmandel)
Update initialClusterVersion to 1.9.6.gke.1 #190 (markmandel)
Point the install.yaml to the release-0.1 branch #189 (markmandel)
Fixed missing links in documentation. #166 (fooock)

Closed issues:

Fix cyclomatic complexity in examples/simple-udp/server/main.go #178
Fix cyclomatic complexity in cmd/controller/main.go #177
Add gometalinter to build #163
Add .editorconfig to ensure common formatting #97

Merged pull requests:

Fix cyclomatic complexity in cmd/controller/main.go #209 (enocom)
Testing functions for resource events #208 (markmandel)
Shrink main func to resolve gocyclo warning #207 (enocom)
Clearer docs on developing and building from source #206 (markmandel)
Add formatting guidelines to CONTRIBUTING.md #205 (enocom)
Fleet docs: Some missing pieces. #204 (markmandel)
RBAC: controller doesn't need fleet create #202 (markmandel)
Release version, and twitter badges. #201 (markmandel)
Typo in GameServer json #200 (markmandel)
Install docs: minikube 0.25.2 and k8s 1.9.4 #195 (markmandel)
Update temporary auth against Google Container Registry #191 (markmandel)
Make the development release warning more visible. #188 (markmandel)
Solve rare flakiness on TestWorkerQueueHealthy #185 (markmandel)
Adding additional resources for CRDs and Controllers #184 (markmandel)
Reworked some Dockerfiles to improve cache usage. #183 (EricFortin)
Windows eol #182 (fooock)
Missed a couple of small things in last PR #175 (markmandel)
Centralise utilities for testing controllers #172 (markmandel)
Generate the install.yaml from helm template #171 (markmandel)
Integrated Helm into the build and development system #170 (markmandel)
Refactor of workerqueue health testing #164 (markmandel)
Fix some Go Report Card warnings #162 (dvrkps)
fix typo found by report card #161 (Kuqd)
Register liveness check in gameservers.Controller #160 (enocom)
Why does this project exist? #159 (markmandel)
Add GKE Comic to explain Kubernetes to newcomers #158 (markmandel)
Adding a Go Report Card #157 (markmandel)
Documentation on the CI build system. #152 (markmandel)
Helm integration #149 (fooock)
Minor rewording #148 (bransorem)
Move GameServer validation to a ValidatingAdmissionWebhook #147 (markmandel)
Update create_gameserver.md #143 (royingantaginting)
Fixed spelling issues in gameserver_spec.md #141 (mattva01)
Handle stop signal in the SDK Server #140 (markmandel)
go vet: 3 warnings, 2 of them are easy. #139 (Deleplace)
Update Go version to 1.10 #137 (markmandel)
Cleanup of grpc go generation code #136 (markmandel)
Update base version to 0.2 #133 (markmandel)
Centralise the canonical import paths and more package docs #130 (markmandel)

v0.1 (2018-03-06)
Implemented enhancements:

The local mode of the agon sidecar listen to localhost only #62
Record Events for GameServer State Changes #32
Use a single install.yaml to install Agon #17
SDK + Sidecar implementation #16
Game Server health checking #15
Dynamic Port Allocation on Game Servers #14
Sidecar needs a healthcheck #12
Health Check for the Controller #11
GameServer definition validation #10
Default RestartPolicy should be Never on the GameServer container #9
Mac & Windows binaries for local development #8
gcloud docker --authorize make target and push targets #5
Do-release target to automate releases #121 (markmandel)
Zip archive of sdk server server binaries for release #118 (markmandel)
add hostPort and container validations to webhook #106 (Kuqd)
MutatingWebHookConfiguration for GameServer creation & Validation. #95 (markmandel)
Address flag for the sidecar #73 (markmandel)
Allow extra args to be passed into minikube-shell #71 (markmandel)
Implementation of Health Checking #69 (markmandel)
Develop and Build on Windows (WSL) with Minikube #59 (markmandel)
Recording GameServers Kubernetes Events #56 (markmandel)
Add health check for gameserver-sidecar. #44 (dzlier-gcp)
Dynamic Port Allocation for GameServers #41 (markmandel)
Finalizer for GameServer until backing Pods are Terminated #40 (markmandel)
Continuous Integration with Container Builder #38 (markmandel)
Windows and OSX builds of the sidecar #36 (markmandel)
C++ SDK implementation, example and doc #35 (markmandel)
Use a sha256 of Dockerfile for build-image #25 (markmandel)
Utilises Xonotic.org to build and run an actual game on Agon. #23 (markmandel)
Go SDK for integration with Game Servers. #20 (markmandel)

Fixed bugs:

make gcloud-auth-docker fails on Windows #49
Convert ENTRYPOINT foo to ENTRYPOINT \["/path/foo"\] #39
Handle SIGTERM in Controller #33
Gopkg.toml should use tags not branches for k8s.io dependencies #1
fix liveness probe in the install.yaml #119 (Kuqd)
Make Port Allocator idempotent for GameServers and Node events #117 (markmandel)
DeleteFunc could recieve a DeletedFinalStateUnknown #113 (markmandel)
Goimports wasn't running on CRD generation #99 (markmandel)
Fix a bug in HandleError #67 (markmandel)
Minikube targts: make sure they are on the agon minikube profile #66 (markmandel)
Header insert on gRPC code gen touched too many files #58 (markmandel)
Fix for health check stability issues #55 (markmandel)
make gcloud-auth-docker works on Windows #50 (markmandel)
Use the preferred ENTRYPOINT format #43 (markmandel)
Update Kubernetes dependencies to release branch #24 (markmandel)

Closed issues:

make do-release target #115
Creating a Kubernetes Cluster quickstart #93
Namespace for Agones infrastructure #89
Health check should be moved out of gameservers/controller.go #88
Add archiving the sdk-server binaries into gcs into the cloudbuild.yaml #87
Upgrade to Go 1.9.3 #63
Switch to RBAC #57
Building Agon on Windows #47
Building Agones on macOS #46
Write documentation for creating a GameServer #45
Agon should work on Minikube #30
Remove the entrypoint from the build-image #28
Base Go Version and Docker image tag on Git commit sha #21
Tag agon-build with hash of the Dockerfile #19
Example using Xonotic #18
Continuous Integration #13
C++ SDK #7
Upgrade to alpine 3.7 #4
Make controller SchemeGroupVersion a var #3
Consolidate Version into a single constant #2

Merged pull requests:

Godoc badge! #131 (markmandel)
add missing link to git message documentation #129 (Kuqd)
Minor tweak to top line description of Agones. #127 (markmandel)
Documentation for programmatically working with Agones. #126 (markmandel)
Extend documentation for SDKs #125 (markmandel)
Documentation quickstart and specification gameserver #124 (Kuqd)
Add MutatingAdmissionWebhook requirements to README #123 (markmandel)
Add cluster creation Quickstart. #122 (dzlier-gcp)
Fix typo introduced by refactor #120 (markmandel)
Cleanup on GameServer Controller #114 (markmandel)
Fixed some typos. #112 (EricFortin)
Added the source of the name to the Readme. #111 (markmandel)
Add 'make' to minikube target commands #109 (joeholley)
Move WaitForEstablishedCRD into central crd package #108 (markmandel)
Centralise Controller Queue and Worker processing #107 (markmandel)
Slack community! #105 (markmandel)
Add an source to all log statements #103 (markmandel)
Putting the code of conduct front of page. #102 (markmandel)
Add CRD validation via OpenAPIv3 Schema #100 (Kuqd)
Use github.com/heptio/healthcheck #98 (enocom)
Adding CoC and Discuss mailing lists. #96 (markmandel)
Standardize on LF line endings #92 (enocom)
Move Agones resources into a agones-system namespace. #91 (markmandel)
Support builds on macOS #90 (enocom)
Enable RBAC #86 (dzlier-gcp)
Update everything to be Kubernetes 1.9+ #85 (markmandel)
Expand on contributing documentation. #84 (markmandel)
Remove entrypoints in makefile. #82 (Kuqd)
Upgrade to Go 1.9.4 #81 (markmandel)
Update to client-go release 1.6 #80 (markmandel)
Setup for social/get involved section. #79 (markmandel)
Changing name from Agon => Agones. #78 (markmandel)
Refactor to centralise controller #77 (markmandel)
Missing link to healthchecking. #76 (markmandel)
Upgrade to Alpine 3.7 #75 (markmandel)
Update to Go 1.9.3 #74 (markmandel)
Update Xonotic demo to use dynamic ports #72 (markmandel)
Basic structure for better documentation #68 (markmandel)
Update gke-test-cluster admin password to new minimum length 16 chars. #65 (dzlier-gcp)
Bring rbac up to date with master #64 (dzlier-gcp)
Output the stack error as an actual array #61 (markmandel)
Update documentation #53 (Kuqd)
Correct maximum parameter typo #52 (Kuqd)
Document building Agon on different platforms #51 (markmandel)
Development and Deployment to Minikube #48 (markmandel)
Fix typo for logrus gameserver field #42 (alexandrem)
Add health check. #34 (dzlier-gcp)
Guide for developing and building Agon. #31 (markmandel)
Implement Versioning for dev and release #29 (markmandel)
Consolidate the Version constant #27 (markmandel)
Make targets gcloud docker --authorize-only and push #26 (markmandel)
zinstall.yaml to install Agon. #22 (markmandel)
Disclaimer that Agon is alpha software. #6 (markmandel)

* This Change Log was automatically generated by github_changelog_generator

repo: GoogleCloudPlatform/agones


text:
Module Updates 202212

Overview
Update modules for ASL training environment.
Target Modules

tensorflow

2.6.5 -> 2.8.3 (Supported on Vertex AI Workbench TensorFlow Enterprise with LTS, released on 2022/09/02)

tfx

1.4.0 -> 1.8.1 (Latest version compatible with TF2.8, released on 2022/08/01)

kfp

1.8.10 -> 1.8.16 (Latest as of 2022/11/24)

google-cloud-aiplatform

1.7.1 -> 1.19.0 (Latest as of 2022/11/24)

google-cloud-pipeline-components

0.2.1 -> 1.0.27 (Latest as of 2022/11/24)

Details are in PR #277
Dev Branch
dev_module_update_202212
Test Tracker

[ ] bigquery
[ ] building_production_ml_systems @sanjanalreddy
[ ] docker_and_kubernetes
[ ] end-to-end-structured
[ ] feature_engineering
[ ] image_models @takumiohym
[x] introduction_to_tensorflow @takumiohym
[ ] jax (Need maintenance? Skip so far?)
[ ] kubeflow_pipelines @takumiohym
[ ] launching_into_ml @sanjanalreddy
[ ] ml_fairness_explainability
[ ] model_monitoring
[ ] multi_modal @takumiohym
[ ] recommendation_systems
[ ] reinforcement_learning
[ ] supplemental (Remove?)
[ ] text_models @sanjanalreddy
[ ] tfx_pipelines
[ ] time_series_prediction @sanjanalreddy
[ ] uncertainty_aware_models

Added myself to a few  modules

Thanks @kylesteckler @sanjanalreddy @BenoitDherin! All the tests and updates are done.
Here is the summary of the update.
Results (all PRs)

5 Minor updates
Removed 2 labs

building_production_ml_systems/…/3_kubeflow_pipelines_vertex.ipynb

Too old, not used, standard KFP modules cover it better.

ml_fairness_explainability/…/1_inclusive_ml.ipynb

LIT is available, the same demo is available on the official web, not compatible with Vertex AI Workbench User Managed Notebooks

Moved 3 labs to special kernels

Reinforcement Learning module
Reliable ML module
TF Recommenders lab

authors: sanjanalreddy takumiohym

repo: GoogleCloudPlatform/asl-ml-immersion


text:
Separate map reduce

Moving the hadoop jobs to a separate project.  That will help us create more streamlined dependencies for users like those in GAE

closing this for now.


text:
equals(Object obj)" and "hashCode()" should be overridden in pairs

This pull request is focused on resolving occurrences of Sonar rule squid:S1206 - “ equals(Object obj) and hashCode() should be overridden in pairs ”. You can find more information about the issue here: https://dev.eclipse.org/sonar/rules/show/squid:S1206
Please let me know if you have any questions.
Ayman Abdelghany.

Can you please sign the CLA?

signed the CLA

authors: AymanDF sduskis


text:
blueprint test: cloud build helpers

We often use CloudBuild to hydrate and actuate blueprints (tf/krm). It would be good include some test helpers or examples for this. Currently we spin up resources (build triggers, build pools) but don't test pipelines ( use cases: secure-cicd, example-foundation, tests on example-foundation).

/cc @gtsorbo


text:
Adding multistage build to Dockerfile

This PR updates the cft/developer-tools Dockerfile to use Seth Vargo's Hashicorp installer to install Terraform ( https://github.com/sethvargo/hashicorp-installer ) resulting in a slightly smaller image. 1.5GB vs 1.55GB

Thanks for the contribution, @tfhartmann! I apologize for the delay in getting to this. Can you rebase your branch against master?

Thanks for the contribution, @tfhartmann! I apologize for the delay in getting to this. Can you rebase your branch against master?

No problem! Hows this look?

authors: aaron-lane tfhartmann


text:
Scorecard - get real asset ancestry path

Get real asset ancestry path from CAI exports, so that:

"target" in the constraints can be effective
users can optionally output input.asset.ancestry_path in constraint templates as metadata

Note:
Currently cft cli uses config-validator version v0.0.0-20191121204425-eb1b299ab838
There is later version that handles ancestry path more neatly, however, Forseti uses config-validator as of Oct 15 2019, the new config-validator also changes the interfaces of other functions which cft scorecard and validate subcommands are using
Hence at this point of time it's better to stick to a version closer to what Forseti is using, and consider upgrade later after confirmation that the new config-validator is stable and good to be integrated in varies downstream tools.

FCV has a few more changes to go then it should be stable for quite a while

@katze120 Looks like this needs a rebase.

authors: briantkennedy katze120 morgante


text:
locksmith: initial commit

This PR addresses the need to provide an alternate identity in Cloud Build to make requests to private Cloud Run services.
TODOS

Security Review
Set expiration time on the generated keys?
Figure out a separate mechanism to expire extraneous keys.
Once the "test-runner-identity" is activated, it follows between Cloud Build workspaces. This was not anticipated, how do I revert to the earlier identity?
Update testing README
Finish updating Cloud Build template for fully managed
Finish updating project setup script.
Decide if the automation is worth the overhead: we could manually wrangle keys.

I don't mind all the pieces and I rather use the automated key rotation then manually rotate keys. The few questions I have:

How/where will this break?

Will a cold function create errors with rotating keys?
Do we care about creating a Scheduler alert?
Who/how many people will be managing this process? Can contributors retrigger key addition or only those will project access?

Will we need to update Secret Manager over time?
If the Cloud Build step fails will contributors know what went wrong and what is needed to rerun?

I don't mind all the pieces and I rather use the automated key rotation then manually rotate keys. The few questions I have:

How/where will this break?

If it does not trigger within a couple days of the schedule, the keys should expire. It is unclear to me whether we need to implement a separate "expiration" mechanism" or if the IAM system has something built-in to handle that.

Will a cold function create errors with rotating keys?

If the function does not trigger, the previous key is still in place until expiration. Once it expires gcloud auth will fail and so the build will fail.

Do we care about creating a Scheduler alert?

It's not clear to me whether we want a scheduler alert or an alert on the function, but I definitely think we want something that makes sure all automation is working as expected.

Who/how many people will be managing this process? Can contributors retrigger key addition or only those will project access?

My expectation is that the function is mostly hands off and reserved for maintainers. Any PR that's tested has the chance to expose the service account key by simply adding a cat statement to a build step, which is where our discussion on build security comes in.

Will we need to update Secret Manager over time?

Not sure I follow the question.

If the Cloud Build step fails will contributors know what went wrong and what is needed to rerun?

Not sure that this is different from any failure, once we have more experience with the error states we can refine the error output and add an FAQ to contributor's guide.

This is a good repo to test this out then. As for the secret manager question - once set up will there be any needs to update the secret name or other security related rotations/changes?

Is this ready for review?

authors: averikitsch grayside

repo: GoogleCloudPlatform/cloud-run-samples


text:
Add linux configuration integration tests

Currently working on:
rhel-7
centos-7
debian-9
Detected automatic update issue on debian-8
(https://github.com/GoogleCloudPlatform/compute-image-packages/issues/607)
Detected sshd_config mismatch on the following images:
ubuntu-1404-lts
ubuntu-1604-lts
ubuntu-1710
ubuntu-1804-lts
(https://github.com/GoogleCloudPlatform/compute-image-packages/issues/604)
Fails to run due to old python 2.6.6 (to be solved next):
rhel-6
centos-6
Couldn't test SUSE because of missing gsutils. This will require changes
in bootstrap.py (will be sent in another PR)

I signed it!

/ok-to-test

I am wondering if we should stub out the distro specific configuration tests into their own files given that there will be many (and more as time moves on) and this will become quite long.

No problem. I'll split those classes to different files.

Is the failed test prow/presubmit/flake8 a concern? It does not look to me.

No- just ignore that for now. We need to go back and clean up all the rest of the python code at some point. If you see anything in the flake8 results that pertains to the code you are changing, you should fix that however.

ps: updated PR description. Now redhat/centos 6 and debian 8 is passing

I'm going to merge this so you can iterate on the other cases.

authors: gut zmarano

repo: GoogleCloudPlatform/compute-image-tools


text:
Add Java Parquet read/write pipelines

Pipeline added:

Write to Parquet
IO: Parquet IO
SDK Language: Java
Run instruction:

Create folder for Parquet files
run java WriteParquet --runner="DataflowRunner" --project="your-project" --region="your-region" --file_pattern="your-file-pattern"

Read from Parquet
IO: Parquet IO
SDK Language: Java
Run instruction:

Create set of Parquet files
run java ReadParquet --runner="DataflowRunner" --project="your-project" --region="your-region" --file_path="your-file-path"

Reopened new PR: https://github.com/GoogleCloudPlatform/dataflow-cookbook/pull/50

repo: GoogleCloudPlatform/dataflow-cookbook


text:
ci(assets): Increase test timeout for exporting assets.

Fixes #1273
Default timeout is 300 seconds, so this doubles it.

Errors are unrelated due to Storage flakiness, see #1272. Merging...

repo: GoogleCloudPlatform/dotnet-docs-samples


text:
[Bug]: AttributeError: module 'shapely' has no attribute 'strtree'

File Name
intro_prompt_design.ipynb
What happened?
When running the "Import libraries" code cell with the correct project ID and region. I get the following error.
Relevant log output
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[4], line 1
----> 1 import vertexai
      3 PROJECT_ID = "qwiklabs-gcp-02-857ce462e157"  # @param {type:"string"}
      4 REGION = "us-central1"  # @param {type:"string"}

File /opt/conda/lib/python3.10/site-packages/vertexai/__init__.py:19
     15 """The vertexai module."""
     17 import importlib
---> 19 from google.cloud.aiplatform import version as aiplatform_version
     21 __version__ = aiplatform_version.__version__
     23 from google.cloud.aiplatform import init

File /opt/conda/lib/python3.10/site-packages/google/cloud/aiplatform/__init__.py:26
     21 __version__ = aiplatform_version.__version__
     24 from google.cloud.aiplatform import initializer
---> 26 from google.cloud.aiplatform.datasets import (
     27     ImageDataset,
     28     TabularDataset,
     29     TextDataset,
     30     TimeSeriesDataset,
     31     VideoDataset,
     32 )
     33 from google.cloud.aiplatform import explain
     34 from google.cloud.aiplatform import gapic

File /opt/conda/lib/python3.10/site-packages/google/cloud/aiplatform/datasets/__init__.py:19
      1 # -*- coding: utf-8 -*-
      2
      3 # Copyright 2020 Google LLC
   (...)
     15 # limitations under the License.
     16 #
     18 from google.cloud.aiplatform.datasets.dataset import _Dataset
---> 19 from google.cloud.aiplatform.datasets.column_names_dataset import _ColumnNamesDataset
     20 from google.cloud.aiplatform.datasets.tabular_dataset import TabularDataset
     21 from google.cloud.aiplatform.datasets.time_series_dataset import TimeSeriesDataset

File /opt/conda/lib/python3.10/site-packages/google/cloud/aiplatform/datasets/column_names_dataset.py:24
     21 from typing import List, Optional, Set
     22 from google.auth import credentials as auth_credentials
---> 24 from google.cloud import bigquery
     25 from google.cloud import storage
     27 from google.cloud.aiplatform import utils

File ~/.local/lib/python3.10/site-packages/google/cloud/bigquery/__init__.py:35
     31 from google.cloud.bigquery import version as bigquery_version
     33 __version__ = bigquery_version.__version__
---> 35 from google.cloud.bigquery.client import Client
     36 from google.cloud.bigquery.dataset import AccessEntry
     37 from google.cloud.bigquery.dataset import Dataset

File ~/.local/lib/python3.10/site-packages/google/cloud/bigquery/client.py:75
     73 from google.cloud.bigquery._http import Connection
     74 from google.cloud.bigquery import _pandas_helpers
---> 75 from google.cloud.bigquery.dataset import Dataset
     76 from google.cloud.bigquery.dataset import DatasetListItem
     77 from google.cloud.bigquery.dataset import DatasetReference

File ~/.local/lib/python3.10/site-packages/google/cloud/bigquery/dataset.py:25
     23 from google.cloud.bigquery import _helpers
     24 from google.cloud.bigquery.model import ModelReference
---> 25 from google.cloud.bigquery.routine import RoutineReference
     26 from google.cloud.bigquery.table import TableReference
     27 from google.cloud.bigquery.encryption_configuration import EncryptionConfiguration

File ~/.local/lib/python3.10/site-packages/google/cloud/bigquery/routine/__init__.py:18
      1 # Copyright 2021 Google LLC
      2 #
      3 # Licensed under the Apache License, Version 2.0 (the "License");
   (...)
     12 # See the License for the specific language governing permissions and
     13 # limitations under the License.
     15 """User-Defined Routines."""
---> 18 from google.cloud.bigquery.enums import DeterminismLevel
     19 from google.cloud.bigquery.routine.routine import Routine
     20 from google.cloud.bigquery.routine.routine import RoutineArgument

File ~/.local/lib/python3.10/site-packages/google/cloud/bigquery/enums.py:21
     18 import itertools
     20 from google.cloud.bigquery_v2 import types as gapic_types
---> 21 from google.cloud.bigquery.query import ScalarQueryParameterType
     24 class AutoRowIDs(enum.Enum):
     25     """How to handle automatic insert IDs when inserting rows as a stream."""

File ~/.local/lib/python3.10/site-packages/google/cloud/bigquery/query.py:23
     20 import decimal
     21 from typing import Any, Optional, Dict, Union
---> 23 from google.cloud.bigquery.table import _parse_schema_resource
     24 from google.cloud.bigquery._helpers import _rows_from_json
     25 from google.cloud.bigquery._helpers import _QUERY_PARAMS_FROM_JSON

File ~/.local/lib/python3.10/site-packages/google/cloud/bigquery/table.py:33
     30     pandas = None
     32 try:
---> 33     import geopandas  # type: ignore
     34 except ImportError:
     35     geopandas = None

File /opt/conda/lib/python3.10/site-packages/geopandas/__init__.py:3
      1 from geopandas._config import options
----> 3 from geopandas.geoseries import GeoSeries
      4 from geopandas.geodataframe import GeoDataFrame
      5 from geopandas.array import points_from_xy

File /opt/conda/lib/python3.10/site-packages/geopandas/geoseries.py:18
     15 from shapely.geometry.base import BaseGeometry
     17 import geopandas
---> 18 from geopandas.base import GeoPandasBase, _delegate_property
     19 from geopandas.explore import _explore_geoseries
     20 from geopandas.plotting import plot_series

File /opt/conda/lib/python3.10/site-packages/geopandas/base.py:13
     10 from shapely.geometry.base import BaseGeometry
     12 from . import _compat as compat
---> 13 from .array import GeometryArray, GeometryDtype, points_from_xy
     16 def is_geometry_type(data):
     17     """
     18     Check if the data is of geometry dtype.
     19
     20     Does not include object array of shapely scalars.
     21     """

File /opt/conda/lib/python3.10/site-packages/geopandas/array.py:23
     20 from shapely.geometry.base import BaseGeometry
     22 from ._compat import HAS_PYPROJ, requires_pyproj
---> 23 from .sindex import SpatialIndex
     25 if HAS_PYPROJ:
     26     from pyproj import Transformer

File /opt/conda/lib/python3.10/site-packages/geopandas/sindex.py:9
      6 from . import _compat as compat
      7 from . import array, geoseries
----> 9 PREDICATES = {p.name for p in shapely.strtree.BinaryPredicate} | {None}
     11 if compat.GEOS_GE_310:
     12     PREDICATES.update(["dwithin"])

AttributeError: module 'shapely' has no attribute 'strtree'

Code of Conduct

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

I was able to run it using the following cell:
`!pip uninstall -y shapely pygeos geopandas
Install specific versions of shapely, pygeos, and geopandas known to be compatible
!pip install shapely==1.8.5.post1 pygeos==0.12.0 geopandas==0.10.2
Upgrade google-cloud-aiplatform
!pip install -U google-cloud-aiplatform`
@ Google-Team please add to / edit the Repo.

Thanks for your code . I am able to run the file

I was able to run it using the following cell:
!pip uninstall -y shapely pygeos geopandas
# Install specific versions of shapely, pygeos, and geopandas known to be compatible
!pip install shapely==1.8.5.post1 pygeos==0.12.0 geopandas==0.10.2
# Upgrade google-cloud-aiplatform
!pip install -U google-cloud-aiplatform

@ Google-Team please add to / edit the Repo.

This was fixed in the Vertex AI SDK. I updated the notebook to upgrade to the latest version of the SDK.

authors: AashisAashu holtskinner sandboxcode

repo: GoogleCloudPlatform/generative-ai


text:
publishTelemetry doesn't send data when separate status topic enabled in registry

Hi
I've got strange behavior - when added separate state topic to registry, my device stopped publishing telemetry.
I check return code and it show that publishing is OK, but haven't see any message in device-events (default telemetry) topic.
Also in according to serial log of device it sends telemetry but I've not see any records about it in log (debug level enabled) at gcloud console...
I tried to swap order of state and telemetry publishing in code but no success.
I'll try to remove state topick and check sending telemetry again. But I think that looks like a bug in case if I didn't something wrong in my code.
Any help, please!
This is code of publishing:
/*

Send device state
/
Serial.print("State: ");
String state = getDeviceState();
Serial.println(state);
Serial.print("Publishing state... ");
if (publishState(state)) {
Serial.println("done");
} else {
Serial.print("error: ");
mqtt->logError();
}
/
Send device telemetry
*/
Serial.print("Telemetry: ");
String report = getDefaultReport();
Serial.println(report);
Serial.print("Publishing telemetry... ");
if (publishTelemetry(report)) {
Serial.println("done");
} else {
Serial.print("error: ");
mqtt->logError();
}

and this is log from serial console:
09:54:39.343 -> State: {"device_id":"shit_meter-898da8","chip_model":"ESP32-D0WDQ6","chip_revision":1,"chip_cores":2,"firmware_version":"0.0.1","ssid":"wl-500gpv2","bssid":"14:CC:20:62:C9:8F"}
09:54:39.343 -> Publishing state... done
09:54:39.343 -> Telemetry: {"battery":3294,"temperature":2241,"distance":221}
09:54:39.641 -> Publishing telemetry... done

Update
Small mistake in previous post. When I changed publishing order when telemetry messages were sent first it were delivered but there was some lag in cloud console to show them.
Also I did small set of tests.
After remove separate state topic from registry telemetry messages began to be delivered.
Then I reverted back state topic into registry and also swaped publishing order to send state first and telemetry second - and telemetry wasn't delivered again.
At end I swapped order of publishing telemetry end state messages back - telemetry messages began to delivered.
So, in case when defined two topics (events and states) in registry it works only when publishing of telemetry goes first.
It is very strange for me...

The topic for a your device must be the device-specific topic projects/PROJECT_ID/locations/REGION/registries/REGISTRY_ID/devices/DEVICE_ID but I'm guessing you're doing this correctly if you are using the Arduino library and are using the global functions as I'm seeing in your example.  That said, if the topic is incorrect, the MQTT device bridge will disconnect the client which creates inconsistent behavior in the client. If you have enabled Cloud Logging for your device registry, additional information may be available in the console.
Messages published to the events telemetry topic can have some latency before being available to the PubSub queue, particularly when the first messages get published (I'm not sure I've seen more than 60 seconds in practice, which is rare, and I've used the MQTT bridge quite a bit). The QoS can affect the latency so it's worth trying both 0 and 1 and seeing which works better for your application. If you
State messages persist (you can read the last 10 states for a device) and are easier for testing because you can see them on the Google Cloud console.
Full details on the MQTT bridge are documented here and may be helpful for debugging.

Hi
I suspect that it is not related to delay in cloud.
My opinion is that this behaviour is more related to some asyncronous execution in mqtt (possible) library or somesing wrong with processing of state of sending data.
For example I'll show next case
(Small remark: sometime, very rare I've got case when both messages were not delivered)
Log on device shows that both publications - events&state, where done with succes. There is it:
15:17:21.422 -> WiFi connected
15:17:21.422 -> Synchronizing time... done
15:17:21.422 -> Initializing Google Cloud IoT...done
15:17:21.422 -> Connecting...
15:17:21.422 -> Refreshing JWT
15:17:24.675 -> connected
15:17:24.675 ->
15:17:24.675 -> Library connected!
15:17:24.741 -> incoming: /devices/shit_meter-898da8/config:
15:17:24.741 -> {"duty_cycle_interval_sec":1800}
15:17:24.741 -> No more task for GCloud, can go asleep
15:17:24.808 -> Telemetry: {"battery":3282,"temperature":2367,"distance":220}
15:17:25.140 -> Publishing telemetry... done
15:17:25.140 -> State: {"device_id":"shit_meter-898da8","chip_model":"ESP32-D0WDQ6","chip_revision":1,"chip_cores":2,"firmware_version":"0.0.3","ssid":"wl-500gpv2","bssid":"14:CC:20:62:C9:8F"}
15:17:25.140 -> Publishing state... done
15:17:25.140 -> State changed from: 3 to 4
15:17:25.638 -> Close connection to cloud... done
15:17:25.804 -> System going to sleep for 1800 seconds
But log in cloud shows that only one of publications was received - events. And moreover, device was disconnected because timeout error after more than 1 minute of waiting, so it was enough time to delivery second message.
Cloud log at attached screen picture.

In my code I control return code of both publishing functions. And write error message to serial console if something goes wrong.
For reliable finish of all tasks when all are done I also wait half of second with nonblocking counter at loop().
There is code:
bool publishTelemetry(String data){
uint8_t retry = 0;
bool result = false;
while (retry++ < p_gcloud_publishing_retries.value()) {
if ((result = mqtt->publishTelemetry(data))) {
break;
}
Serial.print("error: ");
mqtt->logError();
if (retry < p_gcloud_publishing_retries.value()) {
delay(GCLOUD_PUBLISHING_RETRY_DELAY_MSEC);
Serial.print("Retrying... ");
}
}
return result;
}
bool publishState(String data) {
uint8_t retry = 0;
bool result = false;
while (retry++ < p_gcloud_publishing_retries.value()) {
if ((result = mqtt->publishState(data))) {
break;
}
Serial.print("error: ");
mqtt->logError();
if (retry < p_gcloud_publishing_retries.value()) {
delay(GCLOUD_PUBLISHING_RETRY_DELAY_MSEC);
Serial.print("Retrying... ");
}
}
return result;
}
// Cut begin: publishing messages
Serial.print("Telemetry: ");
String report = getDefaultReport();
Serial.println(report);
Serial.print("Publishing telemetry... ");
if (publishTelemetry(report)) {
Serial.println("done");
} else {
Serial.println("Fatal error when publishing, system will restarted...");
Serial.print("Close connection to cloud... ");
if (mqttClient->connected()) {
mqttClient->disconnect();
delay(100);
}
Serial.println("done");
Serial.println("Rebooting");
ESP.restart();
}
Serial.print("State: ");
String state = getDeviceState();
Serial.println(state);
Serial.print("Publishing state... ");
if (publishState(state)) {
Serial.println("done");
} else {
Serial.println("Fatal error when publishing, system will restarted...");
Serial.print("Close connection to cloud... ");
if (mqttClient->connected()) {
mqttClient->disconnect();
delay(100);
}
Serial.println("done");
Serial.println("Rebooting");
ESP.restart();
}
// Cut end: publishing messages
// Cut begin: finish job
if (systemCanGoAsleep && gcloudCanGoAsleep && !systemConfigChangesPending) {
if (sleepDeadline == 0) {
sleepDeadline = millis() + SLEEP_DELAY_MSEC;
} else {
if (sleepDeadline <= millis()) {
goToSleep(p_duty_cycle_interval_sec.value());
}
}
}
// Cut end: finish job

As only I've wrote previous post I cought another issue...
Two times with three retries publishing was ended with error.
But receiving message on configuration topic was successed all times, so there eliminates possible networking issues.
It is noteworthy that device log shows that publication was successful at last iteration, but cloud log shows that messages were not received.
Log of device (slightly truncated):
16:17:10.023 -> ets Jun  8 2016 00:22:57
... skip ...
16:17:12.744 -> Initializing Google Cloud IoT...done
16:17:12.744 -> Connecting...
16:17:12.744 -> Refreshing JWT
16:17:15.997 -> connected
16:17:15.997 ->
16:17:15.997 -> Library connected!
16:17:16.063 -> incoming: /devices/shit_meter-898da8/config:
16:17:16.063 -> {"duty_cycle_interval_sec":1800}
16:17:16.063 -> No more task for GCloud, can go asleep
16:17:16.395 -> Telemetry: {"battery":3277,"temperature":2455,"distance":220}
16:17:16.694 -> Publishing telemetry... error: -9
16:17:16.694 -> LWMQTT_MISSING_OR_WRONG_PACKET
16:17:17.192 -> Retrying... error: -9
16:17:17.192 -> LWMQTT_MISSING_OR_WRONG_PACKET
16:17:17.723 -> Retrying... error: -9
16:17:17.723 -> LWMQTT_MISSING_OR_WRONG_PACKET
16:17:17.723 -> Fatal error when publishing, system will restarted...
16:17:17.723 -> Close connection to cloud... done
16:17:17.723 -> Rebooting
16:17:17.756 -> ets Jun  8 2016 00:22:57
... skip ...
16:17:20.545 -> Initializing Google Cloud IoT...done
16:17:20.545 -> Connecting...
16:17:20.545 -> Refreshing JWT
16:17:23.764 -> connected
16:17:23.764 ->
16:17:23.764 -> Library connected!
16:17:23.831 -> incoming: /devices/shit_meter-898da8/config:
16:17:23.831 -> {"duty_cycle_interval_sec":1800}
16:17:23.831 -> No more task for GCloud, can go asleep
16:17:24.196 -> Telemetry: {"battery":3270,"temperature":2453,"distance":220}
16:17:24.495 -> Publishing telemetry... error: -9
16:17:24.495 -> LWMQTT_MISSING_OR_WRONG_PACKET
16:17:24.993 -> Retrying... error: -9
16:17:24.993 -> LWMQTT_MISSING_OR_WRONG_PACKET
16:17:25.491 -> Retrying... error: -9
16:17:25.491 -> LWMQTT_MISSING_OR_WRONG_PACKET
16:17:25.491 -> Fatal error when publishing, system will restarted...
16:17:25.491 -> Close connection to cloud... done
16:17:25.491 -> Rebooting
16:17:25.557 -> ets Jun  8 2016 00:22:57
... skip ...
16:17:28.379 -> Initializing Google Cloud IoT...done
16:17:28.379 -> Connecting...
16:17:28.379 -> Refreshing JWT
16:17:31.599 -> connected
16:17:31.599 ->
16:17:31.599 -> Library connected!
16:17:31.665 -> incoming: /devices/shit_meter-898da8/config:
16:17:31.665 -> {"duty_cycle_interval_sec":1800}
16:17:31.665 -> No more task for GCloud, can go asleep
16:17:31.764 -> Telemetry: {"battery":3273,"temperature":2453,"distance":220}
16:17:32.063 -> Publishing telemetry... done
16:17:32.063 -> State: {"device_id":"shit_meter-898da8","chip_model":"ESP32-D0WDQ6","chip_revision":1,"chip_cores":2,"firmware_version":"0.0.3","ssid":"wl-500gpv2","bssid":"14:CC:20:62:C9:8F"}
16:17:32.063 -> Publishing state... done
16:17:32.063 -> State changed from: 3 to 4
16:17:32.561 -> Close connection to cloud... done
16:17:32.727 -> System going to sleep for 1800 seconds
Log of cloud:

Hi
As solution I added some additional time before put device asleep for (as I suppose) internal process can finish its job. After that described errors no more occurred.
So I close issue.

authors: gguuss sacculus


text:
Remove workaround for ObjectAccessControl collections bug

google/google-api-java-client/issues/1022 is fixed and we can remove previous workaround.

Changes Unknown when pulling d8631513f0a222a0d853ab04518bf0e4ba1ec1c5 on mziccard:storage-acls into ** on GoogleCloudPlatform:master**.

authors: coveralls mziccard

repo: GoogleCloudPlatform/google-cloud-java


text:
Fix the error when calling Timestamp.of(Date date) when date is pre epoch

Fix #3429

PTAL


text:
BigQuery: cancel query on exception in query_rows.

This covers the primary reason one would want the job ID from an
exception in query rows: to cancel the job.
Replaces https://github.com/GoogleCloudPlatform/google-cloud-python/pull/4240.

Test failure is on api_core (possibly due to a change in flake8 behavior.
nox > Running session lint
nox > virtualenv /var/code/gcp/.nox/lint -p python3.6
nox > chdir /var/code/gcp/api_core
nox > pip install --upgrade flake8 flake8-import-order
nox > pip install --upgrade .
nox > flake8 google tests
google/api_core/future/_helpers.py:38:5: E722 do not use bare except'
nox > Command flake8 google tests failed with exit code 1
nox > Session lint failed. :(

repo: GoogleCloudPlatform/google-cloud-python


text:
Test for multiprocessing usage

@kpayson64 @jonparrott For #4736.  This test passes in python 3.6 (starmap doesn't exist in python2.7).  Did I write something wrong?
I'm also wondering if something else changed since I last looked, as batch.delete and batch.insert also seemed to be working now.
(I also know there is a possible race condition, but i just wanted to see if the process would hang or not)

@jonparrott If you have some time next week, could you take a look and see if the code would hang for you?  (I believe you have a Mac?)
Thanks.

@tseaver I think it's probably a good idea to have this in our test suite. Can you review and merge?

This test is actually hanging for me now with no changes.

It looks like something has changed in the backend and getting segmentation fault, getting a -11 exit code from pytest.  (SIGSEGV)
@jonparrott Maybe need to take this to the gRPC team?

@mehrdada @nathanielmanistaatgoogle

Since this is not actually going to be supported behavior I'm just going to close this.
Maybe at some point it will be good as a behavior test.

authors: chemelnucfin jonparrott


text:
Errors not being reported

I have deployed a simple ruby web app (using Rack and Puma) on Google Container Engine and Im unable to enable Stackdriver error reporting. Although logging works perfectly
Since the gem states that it takes care of all configuration, I have simply installed and required the file at the top of my rack server file.
For my Google Cloud project, StackDriver error reporting is generally correctly configured since it shows me errors for other containers on the same ContainerEngine deployment.
For testing whether the error reporting works, I have setup an endpoint which triggers a Ruby StandardError and returns an HTTP 500.
The Stackdriver logs clearly show an error being reported but nothing appears on the Stackdriver error console.
Using gem version 0.8

Hi @rushilagr. Thanks for reporting the issue. A common pitfall for error reporting is that the Cloud Error Reporting API isn't enabled by default. Please make sure it is enable on your GCP project.
Also, I noticed you stated "Since the gem states that it takes care of all configuration, I have simply installed and required the file at the top of my rack server file." This is only true if you're using a Ruby on Rails application and include the Railtie class/file. For other rack-based applications, manually include the middleware is required. For example:
require "stackdriver"

# Manually inject Error Reporting middleware into the rack stack
use Google::Cloud::ErrorReporting::Middleware

Please let us know if you're still having trouble with it.

The error reporting API was not enabled. The documentation around it is a bit confusing.
But even after enabling, It's not working.
Here is the error trace from server logs:
2017-08-23T14:43:44.614948258Z Puma starting in single mode...
2017-08-23T14:43:44.614992379Z * Version 3.10.0 (ruby 2.3.1-p112), codename: Russell's Teapot
2017-08-23T14:43:44.614996544Z * Min threads: 0, max threads: 16
2017-08-23T14:43:44.614999006Z * Environment: deployment
2017-08-23T14:43:44.615093217Z * Listening on tcp://0.0.0.0:9292
2017-08-23T14:43:44.615308706Z Use Ctrl-C to stop
2017-08-23T14:43:54.677106836Z 2017-08-23 14:43:54 +0000: Rack app error handling request { GET /admin/error }
2017-08-23T14:43:54.677141231Z #<StandardError: StandardError>
2017-08-23T14:43:54.677145246Z /usr/src/app/routes/admin.rb:45:in `block (3 levels) in <class:Server>'
2017-08-23T14:43:54.677148231Z /usr/local/bundle/gems/roda-2.29.0/lib/roda.rb:896:in `if_match'
2017-08-23T14:43:54.677151176Z /usr/local/bundle/gems/roda-2.29.0/lib/roda.rb:492:in `is'
2017-08-23T14:43:54.677153703Z /usr/src/app/routes/admin.rb:44:in `block (2 levels) in <class:Server>'
2017-08-23T14:43:54.677156287Z /usr/local/bundle/gems/roda-2.29.0/lib/roda.rb:827:in `always'
2017-08-23T14:43:54.677158643Z /usr/local/bundle/gems/roda-2.29.0/lib/roda.rb:818:in `_verb'
2017-08-23T14:43:54.677161112Z /usr/local/bundle/gems/roda-2.29.0/lib/roda.rb:416:in `get'
2017-08-23T14:43:54.677163433Z /usr/src/app/routes/admin.rb:42:in `block in <class:Server>'
2017-08-23T14:43:54.677166404Z /usr/local/bundle/gems/roda-2.29.0/lib/roda/plugins/multi_route.rb:213:in `instance_exec'
2017-08-23T14:43:54.677168847Z /usr/local/bundle/gems/roda-2.29.0/lib/roda/plugins/multi_route.rb:213:in `route'
2017-08-23T14:43:54.677171229Z /usr/src/app/server.rb:27:in `block (2 levels) in <class:Server>'
2017-08-23T14:43:54.677173636Z /usr/local/bundle/gems/roda-2.29.0/lib/roda.rb:896:in `if_match'
2017-08-23T14:43:54.677175947Z /usr/local/bundle/gems/roda-2.29.0/lib/roda.rb:534:in `on'
2017-08-23T14:43:54.677178099Z /usr/src/app/server.rb:26:in `block in <class:Server>'
2017-08-23T14:43:54.677180499Z /usr/local/bundle/gems/roda-2.29.0/lib/roda.rb:279:in `instance_exec'
2017-08-23T14:43:54.677183009Z /usr/local/bundle/gems/roda-2.29.0/lib/roda.rb:279:in `block in call'
2017-08-23T14:43:54.677185375Z /usr/local/bundle/gems/roda-2.29.0/lib/roda.rb:277:in `catch'
2017-08-23T14:43:54.677187613Z /usr/local/bundle/gems/roda-2.29.0/lib/roda.rb:277:in `call'
2017-08-23T14:43:54.677189922Z /usr/local/bundle/gems/roda-2.29.0/lib/roda/plugins/status_handler.rb:46:in `call'
2017-08-23T14:43:54.677192197Z /usr/local/bundle/gems/roda-2.29.0/lib/roda.rb:246:in `block in build_rack_app'
2017-08-23T14:43:54.677194703Z /usr/local/bundle/gems/google-cloud-error_reporting-0.26.1/lib/google/cloud/error_reporting/middleware.rb:75:in `call'
2017-08-23T14:43:54.677196989Z /usr/local/bundle/gems/rack-2.0.3/lib/rack/tempfile_reaper.rb:15:in `call'
2017-08-23T14:43:54.677199279Z /usr/local/bundle/gems/rack-2.0.3/lib/rack/common_logger.rb:33:in `call'
2017-08-23T14:43:54.677211652Z /usr/local/bundle/gems/rack-2.0.3/lib/rack/chunked.rb:54:in `call'
2017-08-23T14:43:54.677214292Z /usr/local/bundle/gems/rack-2.0.3/lib/rack/content_length.rb:15:in `call'
2017-08-23T14:43:54.677216562Z /usr/local/bundle/gems/puma-3.10.0/lib/puma/configuration.rb:225:in `call'
2017-08-23T14:43:54.677218943Z /usr/local/bundle/gems/puma-3.10.0/lib/puma/server.rb:605:in `handle_request'
2017-08-23T14:43:54.677221291Z /usr/local/bundle/gems/puma-3.10.0/lib/puma/server.rb:437:in `process_client'
2017-08-23T14:43:54.677223789Z /usr/local/bundle/gems/puma-3.10.0/lib/puma/server.rb:301:in `block in run'
2017-08-23T14:43:54.677226073Z /usr/local/bundle/gems/puma-3.10.0/lib/puma/thread_pool.rb:120:in `block in spawn_thread'

My config.ru
require "./server.rb"
require 'stackdriver'
use Google::Cloud::ErrorReporting::Middleware

run Server.freeze.app

I am using another service, Sentry, in quite a similar fashion. Just adding the Middleware in the config.ru file, and thats working just fine.
Might be an issue with configuration.
The code is running on a kubernetes pod on GKE.

Another question,
What is the difference between Stackdriver Logging API (https://console.cloud.google.com/apis/api/logging.googleapis.com/overview?project=...)
and
Stack Driver Logging Dashboard(https://console.cloud.google.com/logs/viewer?project=...)
Does the Stackdriver Logging API simply monitor the traffic on that particular API?
Thanks

@rushilagr Thanks for checking. I will test the roda gem with google-cloud-error_reporting to see if I can reproduce the issue.

What is the difference between Stackdriver Logging API Dashboard (https://console.cloud.google.com/apis/api/logging.googleapis.com/overview?project=...)
and
the regular Stack Driver Logging Dashboard(https://console.cloud.google.com/logs/viewer?project=...)
Does the Stackdriver Logging API dashboard simply monitor the traffic on that particular API?

You're correct. The Stackdriver Logging API Dashboard, and other API dashboards alike, just monitors the API usage.

Thanks for the quick reply Heng.
Roda is a simple wrapper on top on rack. And it is production tested, so it
would be very very unlikely that there is exists a problem specific to it.
Are there any other things I might be missing? Is there a checklist that I
can go through or some other details I can provide you?
On Wed, Aug 23, 2017 at 11:15 PM Heng Xiong notifications@github.com
wrote:

@rushilagr https://github.com/rushilagr Thanks for checking. I will
test the roda gem with google-cloud-error_reporting to see if I can
reproduce the issue.
What is the difference between Stackdriver Logging API Dashboard (
https://console.cloud.google.com/apis/api/logging.googleapis.com/overview?project=
...)
and
the regular Stack Driver Logging Dashboard(
https://console.cloud.google.com/logs/viewer?project=...)
Does the Stackdriver Logging API dashboard simply monitor the traffic on
that particular API?
You're correct. The Stackdriver Logging API Dashboard, and other API
dashboards alike, just monitors the API usage.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/google-cloud-ruby/issues/1679#issuecomment-324410673,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFbWQPSVz_9OzGeOZ42FPHblypWMCqloks5sbGUxgaJpZM4O8t-B
.

Hi @rushilagr. I actually got Roda to work with the Stackdriver Error Reporting gem by using the Hello World app on Roda's home page. However, I further enabled Roda's built-in error handling mechanism to test if it interferes with Stackdriver Error Reporting:
plugin :error_handler do |e|
  "Oh No!"
end

And sure enough, Roda's built-in error handling mechanism intercepts the raised exception and stops it from propagating up the Rack stack. Do you have such error handling mechanism enabled in your application by any chance? If so, you may need to explicitly report the exception to Stackdriver like so:
plugin :error_handler do |e|
  Google::Cloud::ErrorReporting.report e
  "Oh No!"
end

@rushilagr I just remembered another thing that may have caused the problem you're seeing. The Google Container Engine cluster needs to have the correct permissions and scope to access any of the other Google Cloud Platform services. Some services, like Stackdriver Logging, have the scope enabled by default. The others, such Stackdriver Error Reporting, need to have the scope enabled during the creation of the cluster.
To do so:

Go to the Google Container Engine page on Cloud Console.
Create a new cluster by pressing the CREATE CLUSTER button.
In the config page, click the More link to expand the config options.
Within the Project access section, select Enabled option for the Cloud Platform.
Make other configuration changes if needed. Click Create to finish.

Application running from this newly created cluster should now have proper access to the Stackdriver Error Reporting API.

Enabling the Cloud Platform access fixed it!
I would suggest the team to make the documentation a bit more clearer.
Thanks !

I'm glad we find out what the problem is. We'll definitely document this required setting for future GKE users.

repo: GoogleCloudPlatform/google-cloud-ruby


text:
Remove Pub/Sub autocreate

This PR removes the autocreate feature in Pub/Sub. This feature was implemented early on in the initial design of the Pub/Sub library, along with autoack. Since autoack is being removed, I think it makes sense to reconsider autocreate as well.
The autocreate option simply allows for the creation of a topic when pulling it. So, instead of this:
require "google/cloud/pubsub"

pubsub = Google::Cloud::Pubsub.new

topic = pubsub.topic("existing-topic") ||
        pubsub.create_topic("my-topic")

Users could instead do this:
require "google/cloud/pubsub"

pubsub = Google::Cloud::Pubsub.new

topic = pubsub.topic "existing-topic", autocreate: true

But this feature has been problematic at times, especially when attempted to be combined with the skip_lookup option. Since we are about to break backwards compatibility by removing autoack and adding new features, I think it might be wise to remove autocreate as well. Thoughts?

@tbkneeland.


text:
Add table acceptance test for BigQuery partitioning by field

I realized I missed a test in #1978.
I also removed unused variables in the BigQuery table_reference_test (because the variable is re-assigned to the local reference object).
I'm getting a failure in acceptance tests on this:

Google::Cloud::Bigquery::bigquery#test_0011_should get a list of projects
But I get that on master as well, so I don't think it's related to this change.

I pulled this branch and ran rake ci:a locally, all passing.

authors: jeremywadsack quartzmo


text:
Bump go sdk version to latest

/cc @ChaitanyaKulkarni28 @drewhli

/lgtm

repo: GoogleCloudPlatform/guest-test-infra


text:
Use the socketFactory everywhere

No longer use the Google Connector/j

@jabubake FYI

repo: GoogleCloudPlatform/java-docs-samples


text:
Update versions

One security issue is fixed in this PR.
TODO(): Need to verify javac.version and if errorprone is running correctly for both J8 and J11
Remove Jisha & Tim

I apparently need to test this more.  Not sure why the install of Java 8 is no longer working.  Looks like the kokoro build needs work.
TODO has been done - it should just work.

@kurtisvg PTAL I updated .travis to use bionic; and stop attempting to use OracleJDK8, it defaults to OpenJDK11.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  14.401 s
[INFO] Finished at: 2020-03-05T17:15:20Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.1.1:check (default) on project shared-configuration: Failed during checkstyle configuration: cannot initialize module TreeWalker - TreeWalker is not allowed as a parent of LineLength Please review 'Parent Module' section for this Check in web documentation if Check is standard. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
The command "mvn clean verify && cd test && mvn clean verify" exited with 1.

@lesv - Looks like this is a change in checkstyle as of 8.26. We probably need to update the google_checks.xml in the third_party folder from the source.

@kurtisvg PTAL

[ERROR] /home/travis/build/GoogleCloudPlatform/java-repo-tools/test/src/test/java/com/google/cloud/samples/test/AppTest.java:24: Extra separation in import group before 'org.junit.Test' [CustomImportOrder]
Audit done.
[INFO] There is 1 error reported by Checkstyle 8.30 with google-checks.xml ruleset.
[ERROR] src/test/java/com/google/cloud/samples/test/AppTest.java:[24] (imports) CustomImportOrder: Extra separation in import group before 'org.junit.Test'
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  15.117 s
[INFO] Finished at: 2020-03-05T18:26:46Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:3.1.1:check (default) on project shared-configuration-test: You have 1 Checkstyle violation. -> [Help 1]

authors: kurtisvg lesv

repo: GoogleCloudPlatform/java-repo-tools


text:
IP masquerade zone(s) needs to be configurable

Currently GCE sets up masquerade for container traffic destined for anything but 10.0.0.0/8 - this is insufficient and it is not general enough for other (especially on-prem) installations.

fold into #11204

repo: GoogleCloudPlatform/kubernetes


text:
Remove PodIP from ContainerStatus

Now kubelet reports PodStatus including PodIP through PodStatus completely, there is no need to have PodIP in ContainerStatus for network container anymore.
I am going to send a pr fixing it shortly. Otherwise, someone free to pick it up.

Note: This should only be removed from v1beta3 and from the internal rep (api/types.go).

Offline dicussion with @bgrant0607 Since We already completely hid network container from the user, there is no way for anyone access PodIP from ContainerStatus directly. It is safe to remove PodIP from all api versions.


text:
Adding & removing nodes from existing cluster (creating new instances)

Is there a way for adding and removing nodes from existing cluster (not just the node objects in master but actual instances too)? How do the authors see it happening or how is it done currently?
If there is no existing solution, I'm thinking of implementing this functionality either by

Two additional scripts like cluster/kube-spawn-node.sh and cluster/kube-destroy-node.sh. The logic would be similar to how kube-up creates nodes. I used spawn & destroy to avoid confusion with create/delete, hopefully signifying that actual machines are being created.
One one script like kube-resize-cluster which would take number of nodes as an argument and would spawn or destroy nodes based on that.

Do you feel there is a need for these kind of scripts? What approach would be better?
Regarding terminology, I've seen node and minion both being used. Do they mean the same or is node meant to replace minion?

There is currently no automated way to do this. The provisioning is left to the user and the addition to the cluster can be done with an API call. AFAIK there was some work to automate some of the provisioning. @alex-mohr @davidopp or @ddysher may know more.

Sorry for the delay in responding. IIUC, part of what you are talking about is #6087, but you always want to tell the cloud provider to create/destroy the new nodes (e.g. create/destroy VM instances if running on VMs)? This latter thing is indeed not implement yet, but will be implemented as part of horizontal auto-scaling. We've had some initial work on this and we expect the work to continue after 1.0 (see #5492).
Since we're in a code freeze right now, this isn't a good time to work on it, but once you see activity again on #5492 please feel free to chime in and contribute.
Regarding terminology, yes, "node" and "minion" mean exactly the same thing. "minion" was the term we originally used; we've incrementally moved the code and documentation over to "node" but still have a few references to "minion" (please feel free to send PRs if you see "minion" anywhere).
Please re-open this issue if it does not address your question/comments. Thanks for your interest!

authors: davidopp madis vmarmol


text:
Block access to link-local addresses from containers by default

GCE and AWS expose local metadata servers on a link-local address (169.254.169.254). This compromises isolation of containers from hosts and from the cluster. As with host ports, host networking, host paths, etc., we shouldn't expose these addresses by default. Authorization should be required.
Sadly, Google API clients apparently require metadata access currently, as reported in #8512.
cc @thockin @erictune @evandbrown

Actually, the GCE API doesn't require the metadata server. The client just needs to explicitly provide the credentials in that case.

They don't require it, but manually managing (distributing, revoking, and rotating) service accounts and their credentials is a big step back IMO. If the secrets API can be jiggered to help here, great, just anything to keep folks from including keys in their images.

Dupe of #8867.


text:
Add logging at RunInContainer for future debugging docker exec issues.

cc/ @brendandburns @vishh

LGTM

Addressed your comments.

Thanks @dchen1107!


text:
--filters feature not working on MySQL.

Similar to #760, when running a validation with a MySQL source we get:
No translation rule for <class 'third_party.ibis.ibis_addon.operations.RawSQL'>
The validation was:
data-validation -v validate row  --source-conn mysql -tc bq --tables-list mysql.redacted=bq.redacted --comparison-fields=field1,field2,field3 --primary-keys=id --filters='id>1'

A working validation, omitting the filter is:
data-validation -v validate row  --source-conn mysql -tc bq --tables-list mysql.redacted=bq.redacted --comparison-fields=field1,field2,field3 --primary-keys=id -rr

We'll need to validate billion row tables, so would appreciate this being patched.

https://github.com/GoogleCloudPlatform/professional-services-data-validator/pull/812

authors: claudenm kanhaPrayas