Skip to content

Conversation

@phroi
Copy link
Member

@phroi phroi commented Oct 4, 2025

Summary of changes:

  • Converted sparse repositories to a pnpm monorepo under packages/ and apps/, consolidating multiple git histories.
  • Added centralized template with shared ESLint, Prettier, TypeScript, testing, and TypeDoc settings.
  • Introduced Changesets for versioning and publishing.
  • Standardized tooling: pnpm workspaces, Vitest, devcontainer, build/test/lint scripts.
  • Improved DX with updated devcontainer, CONTRIBUTING.md, and streamlined scripts.
  • Note: some templates were copied from ckb-devrel/ccc.

Phroi %678

@gemini-code-assist
Copy link

Summary of Changes

Hello @phroi, 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 fundamentally refactors the project's architecture by migrating it to a pnpm monorepo. This change aims to unify development practices and tooling across various components, which were previously maintained as separate repositories. The integration of shared configurations for linting, formatting, type checking, and testing, alongside a new versioning system, is designed to improve maintainability, consistency, and the overall developer workflow.

Highlights

  • Monorepo Conversion: The project has been converted from sparse repositories into a pnpm monorepo structure, consolidating multiple Git histories under packages/ and apps/ directories.
  • Centralized Tooling: A centralized template has been established with shared configurations for ESLint, Prettier, TypeScript, Vitest for testing, and TypeDoc for documentation, ensuring consistency across all packages.
  • Versioning and Publishing: Changesets have been introduced to manage versioning and publishing of packages within the monorepo, streamlining the release process.
  • Improved Developer Experience: The developer experience (DX) has been enhanced through an updated devcontainer setup, comprehensive CONTRIBUTING.md guidelines, and streamlined build/test/lint scripts.
Ignored Files
  • Ignored by pattern: .github/workflows/** (3)
    • .github/workflows/check.yaml
    • .github/workflows/publish.yaml
    • .github/workflows/publish.yml
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

@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 does a great job of converting the repository into a pnpm monorepo. The structure is much cleaner, and the use of modern tooling like Changesets, Vitest, and devcontainers is a big improvement. I've found a few critical issues with the workspace and TypeScript configurations that need to be addressed for the monorepo to function correctly. I've also noted some areas for improvement in scripts and configuration files to enhance consistency and maintainability.

@phroi
Copy link
Member Author

phroi commented Oct 5, 2025

/gemini review

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.

Code Review

This pull request marks a significant improvement by migrating the project to a pnpm monorepo. The consolidation of configurations for ESLint, Prettier, TypeScript, and devcontainers is well-executed and will greatly enhance developer experience and maintainability.

However, there are a few critical issues with package configurations that need to be addressed. Several application packages (bot, tester, interface) are still referencing old, externally published @ickb/* packages instead of using the new local workspace packages via workspace:*. This is a crucial part of the monorepo migration and should be fixed to ensure the apps use the code from within this repository. I've added specific comments on this where the diffs allowed. Additionally, there's a package naming error in apps/faucet/package.json.

I've also left some medium-severity suggestions regarding the root .gitignore and a potential regression in the fee calculation logic in the tester app. Overall, this is a great step forward for the project.

@phroi
Copy link
Member Author

phroi commented Oct 5, 2025

@gemini-code-assist I didn't see your new comments

@gemini-code-assist
Copy link

Hello @phroi, thank you for reaching out! I am currently processing the full review of your pull request. The initial summary (Comment 1) is an overview, and the detailed feedback, including any specific code suggestions, will be provided in a formal review submission shortly. Please keep an eye on the "Files changed" tab and your notifications for the complete review. I'll make sure to submit it as soon as it's ready!

@phroi
Copy link
Member Author

phroi commented Oct 5, 2025

Several application packages (bot, tester, interface) are still referencing old, externally published @ickb/* packages instead of using the new local workspace packages via workspace:*. This is a crucial part of the monorepo migration and should be fixed to ensure the apps use the code from within this repository.

Those are legacy Lumos packages, not present in this PR, so this suggestion is not applicable

@phroi
Copy link
Member Author

phroi commented Oct 5, 2025

LGTM

Phroi %80

@phroi phroi merged commit 901c06c into master Oct 5, 2025
2 checks passed
@phroi
Copy link
Member Author

phroi commented Oct 8, 2025

For future reference, this is how merged the previous repos into a monorepo:

set -eux;
git clone --mirror git@github.com:ickb/utils.git /tmp/stack/utils.git;
cd /tmp/stack/utils.git;
git --git-dir=. filter-repo --to-subdirectory-filter packages/utils --force;
cd ~/ickb/stack;
git remote add utils /tmp/stack/utils.git;
git fetch utils --tags;
git merge --allow-unrelated-histories utils/master -m "Import ickb/utils repo into /packages/utils";
git remote remove utils

Phroi %7

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