Skip to content

Fix packaging for jsdom/keytar and resolve deprecated deps - #19

Merged
allenhutchison merged 6 commits into
mainfrom
fix/packaging-and-deps
Nov 19, 2025
Merged

Fix packaging for jsdom/keytar and resolve deprecated deps#19
allenhutchison merged 6 commits into
mainfrom
fix/packaging-and-deps

Conversation

@allenhutchison

Copy link
Copy Markdown
Contributor

Fix Packaging and Resolve Deprecated Dependencies

Changes

Packaging

  • scripts/release.js: Updated to recursively copy node_modules for jsdom and keytar (and their dependencies) into the release artifact. This replaces the previous bundling approach for jsdom which required fragile runtime patches.
  • scripts/release.js: Added logic to copy the commands directory to the release artifact.
  • package.json: Updated release script to automatically run npm run build before packaging. Added release:dev for a full install+build+release cycle.
  • workspace-mcp-server/package.json: Updated clean script to remove node_modules.

Dependencies

  • package.json:
    • Updated @google-apps/chat to ^0.21.0.
    • Updated @googleapis/docs to ^8.1.1.
    • Updated @googleapis/drive to ^19.2.0.
    • Updated google-auth-library to ^10.5.0.
    • Added overrides for glob (^10.4.5) and inflight (^1.0.6) to resolve deprecation warnings.
  • scripts/list-deps.js: Added a utility script to list transitive dependencies (moved to scripts/).

Other

  • gemini-extension.json: Updated version to DEV and formatted args for local development.

Verification

  • Verified npm run release creates a valid artifact with all necessary dependencies.
  • Verified npm install runs without deprecated dependency warnings (except node-domexception which is upstream).
  • Verified extension startup with the new packaging strategy.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @allenhutchison, 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 significantly refines the project's packaging and dependency management. It transitions to a more robust method for including critical node_modules like jsdom and keytar in release artifacts, ensuring greater stability. Concurrently, it updates core Google API dependencies and addresses known deprecation warnings, contributing to a healthier and more maintainable dependency tree. The changes also include improvements to build and cleanup scripts, streamlining development and release processes.

Highlights

  • Improved Packaging for jsdom and keytar: The release script (scripts/release.js) now recursively copies the node_modules for jsdom and keytar and their dependencies directly into the release artifact, replacing a fragile bundling method.
  • Enhanced Release and Clean Scripts: The package.json release script now automatically runs npm run build, and a new release:dev script is added for a full development release cycle. The clean scripts in both the root and workspace-mcp-server package.json files have been expanded to remove more generated files and node_modules.
  • Dependency Updates and Deprecation Resolution: Several Google API client libraries (@google-apps/chat, @googleapis/docs, @googleapis/drive, google-auth-library) have been updated to their latest versions. overrides have been introduced in package.json to resolve deprecation warnings for glob and inflight.
  • New Dependency Listing Utility: A new script, scripts/list-deps.js, has been added to help identify and list transitive dependencies for specific packages.
  • gemini-extension.json Configuration Update: The gemini-extension.json file has been updated to set the version to DEV and adjust the argument formatting for local development.
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.

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

Copy link
Copy Markdown
Contributor

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 effectively addresses dependency issues and improves the packaging process. The updates to dependencies and the use of overrides in package.json successfully resolve deprecation warnings. The new release script logic, which recursively copies dependencies for jsdom and keytar, is a more robust approach than the previous bundling method. I've identified one area for improvement concerning code duplication between two of the scripts, and I've left specific comments with suggestions for refactoring. Overall, these are solid changes that enhance the project's stability and maintainability.

Comment thread scripts/list-deps.js Outdated
Comment thread scripts/release.js Outdated
@allenhutchison
allenhutchison merged commit 0363d30 into main Nov 19, 2025
7 checks passed
@allenhutchison
allenhutchison deleted the fix/packaging-and-deps branch November 19, 2025 21:50
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.

2 participants