Skip to content

repro: demonstrate incompatibility in monorepo #200

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

cabljac
Copy link
Collaborator

@cabljac cabljac commented Aug 7, 2025

This is to track some issues we're having with migrating to firebase 12:

  • updated dev dependencies

  • regenerated dataconnect-sdk with firebase-tools

  • version of generated SDK remains on 11.x, seems strange

  • example build fails IF we emulator:exec before next build, because the emulator switches the generated SDK dependency to 11.x

  • build passes if we manually set the dependency to 12.0.0, install, and do next build. So there's just some incompatibility or mismatch here.

Screenshot 2025-08-07 at 13 00 09 Screenshot 2025-08-07 at 12 58 56
Type error: Argument of type 'QueryRef<ListMoviesData, undefined>' is not assignable to parameter of type 'QueryRef<unknown, undefined>'.
  Types of property 'dataConnect' are incompatible.
    Type 'import("/Users/jacob/tanstack-query-firebase/node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@firebase/data-connect/dist/public").DataConnect' is not assignable to type 'import("/Users/jacob/tanstack-query-firebase/node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@firebase/data-connect/dist/public").DataConnect'.
      Types have separate declarations of a private property 'dataConnectOptions'.

  12 | export default async function PostsPage() {
  13 |   const queryClient = new QueryClient();
> 14 |   const result = await executeQuery(listMoviesRef());
     |                                     ^
  15 |
  16 |   queryClient.setQueryData(
  17 |     [result.ref.name, result.ref.variables],
⚠  Script exited unsuccessfully (code 1)

On the other hand we get an @tanstack-query-firebase/angular:test:ci: FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - call initializeApp() first (app/no-app). if we try to run the angular package tests with this dependency.

Screenshot 2025-08-07 at 13 09 40

Copy link

changeset-bot bot commented Aug 7, 2025

⚠️ No Changeset found

Latest commit: 0215f5c

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link

docs-page bot commented Aug 7, 2025

To view this pull requests documentation preview, visit the following URL:

docs.page/invertase/tanstack-query-firebase~200

Documentation is deployed and generated using docs.page.

Copy link

@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.

Summary of Changes

Hello @cabljac, 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 is a reproduction case designed to demonstrate and investigate a version incompatibility issue within our monorepo. Specifically, it highlights a conflict between the 'firebase' and 'dataconnect-sdk' dependencies. The problem arises when the 'firebase-tools' emulator switches the 'dataconnect-sdk' dependency to an older 11.x version, causing build failures and type errors. Manually setting the dependency to 12.0.0 resolves these issues, indicating a mismatch that needs further attention. Additionally, the changes address a 'FirebaseError' encountered during Angular package tests.

Highlights

  • Demonstrating Dependency Incompatibility: This PR aims to reproduce and investigate a version incompatibility issue between the 'firebase' and 'dataconnect-sdk' dependencies within the monorepo.
  • Firebase Version Updates: I've updated the 'firebase' dependency to '^12.0.0' in the 'react-example' and 'packages/react' peer dependencies to align with the desired version.
  • Angular Specific Dependency: To address a 'FirebaseError: No Firebase App '[DEFAULT]' has been created' issue, I've added 'firebase: ^11.3.0' as a dev dependency in 'packages/angular'.
  • Root Dependency Cleanup: The 'firebase' dependency has been removed from the root 'package.json' dev dependencies.
  • Dataconnect SDK Regeneration: The 'dataconnect-sdk' files were regenerated, resulting in minor formatting changes, such as single quotes and single-line import statements.
  • Dependency Lockfile Update: The 'pnpm-lock.yaml' file has been significantly updated to reflect the new dependency tree, including various new '@firebase' packages introduced with Firebase v12.0.0.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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 or fill out our survey to provide feedback.

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

Warning

Gemini encountered an error creating the review. You can try again by commenting /gemini review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

1 participant