Skip to content

Fix a race condition in the publish script#10109

Merged
joehan merged 3 commits into
mainfrom
jh-smoother-releases
Mar 16, 2026
Merged

Fix a race condition in the publish script#10109
joehan merged 3 commits into
mainfrom
jh-smoother-releases

Conversation

@joehan
Copy link
Copy Markdown
Member

@joehan joehan commented Mar 16, 2026

Description

Sorry that you ran into this last time you released - figure dI should finally fix this/

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a race condition in the publish script by ensuring that the correct version of firebase-tools is used during the publishing process. It also optimizes the build pipeline by reducing an unnecessary delay.

Highlights

  • Reduced npm catch-up delay: The sleep duration in the Cloud Build pipeline was reduced from 240 seconds to 120 seconds, aiming to speed up the publishing process while still allowing npm to propagate.
  • Dynamic versioning for firebase-tools: The firebase-tools package is now published using a specific version number read from /workspace/version_number.txt instead of always targeting latest. This ensures the correct version is published, addressing a potential race condition.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • scripts/publish/cloudbuild.yaml
    • Reduced the npm catch-up sleep duration from 240 seconds to 120 seconds.
    • Modified the pipeline.js command to use a dynamically determined version of firebase-tools from a file, rather than the latest tag, for publishing.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request addresses a race condition in the publishing process by using a specific version of firebase-tools instead of the @latest tag. This is a solid approach. The change to reduce the sleep duration is also a welcome optimization.

I've added a couple of comments with suggestions for improving the reliability of the build pipeline: one to replace the fixed sleep with a more robust polling mechanism, and another to make the script fail-fast to prevent silently falling back to the old, racy behavior in case of an error.

Comment thread scripts/publish/cloudbuild.yaml
Comment thread scripts/publish/cloudbuild.yaml Outdated
@joehan joehan merged commit 436a02c into main Mar 16, 2026
57 of 58 checks passed
@joehan joehan deleted the jh-smoother-releases branch March 16, 2026 18:04
andrewbrook pushed a commit that referenced this pull request Mar 25, 2026
* Fix a race condition in the publish script

* Polling approach
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants