-
-
Notifications
You must be signed in to change notification settings - Fork 91
WIP: Introduce moonrepo #555
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
base: main
Are you sure you want to change the base?
Conversation
Summary of ChangesHello @moreal, 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 initiates the integration of Moonrepo into the project, aiming to streamline and enhance the monorepo's task management and build system. By centralizing task definitions and leveraging Moonrepo's capabilities for caching and impact analysis, the change seeks to improve development efficiency and consistency across all packages. The migration involves updating command execution patterns and simplifying existing configuration files. Highlights
Changelog
Ignored Files
Activity
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this 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 introduces moonrepo as the new task orchestrator, which is a significant and positive change for managing this monorepo. The changes are extensive, touching configuration files, CI/CD workflows, and documentation to replace mise tasks with moon tasks. Overall, the migration is well-underway, but as this is a work-in-progress, there are several areas that need attention to finalize the transition. My review focuses on correctness of the new task definitions and dependency consistency.
moon.yml
Outdated
| test.node: | ||
| script: "moon run :test.node" | ||
| toolchains: | ||
| - "system" | ||
| options: | ||
| cache: false | ||
|
|
||
| test.bun: | ||
| script: "moon run :test.bun" | ||
| toolchains: | ||
| - "system" | ||
| options: | ||
| cache: false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The test.node and test.bun tasks are defined recursively. The test.node task executes moon run :test.node, which will execute the test.node task for all projects, including the root project itself, leading to an infinite loop. The same applies to test.bun. These tasks should be re-evaluated. Perhaps they should be removed from the root moon.yml, and users can run pnpm moon run :test.node directly.
pnpm-lock.yaml
Outdated
| next@15.3.1: | ||
| resolution: {integrity: sha512-8+dDV0xNLOgHlyBxP1GwHGVaNXsmp+2NhZEYrXr24GWLHtt27YrBPbPuHvzlhi7kZNYjeJNR93IF5zfFu5UL0g==} | ||
| engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} | ||
| deprecated: This version has a security vulnerability. Please upgrade to a patched version. See https://nextjs.org/blog/CVE-2025-66478 for more details. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pnpm-lock.yaml
Outdated
| next@15.5.0: | ||
| resolution: {integrity: sha512-N1lp9Hatw3a9XLt0307lGB4uTKsXDhyOKQo7uYMzX4i0nF/c27grcGXkLdb7VcT8QPYLBa8ouIyEoUQJ2OyeNQ==} | ||
| engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} | ||
| deprecated: This version has a security vulnerability. Please upgrade to a patched version. See https://nextjs.org/blog/CVE-2025-66478 for more details. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| install: | ||
| command: "deno task install" | ||
| toolchains: | ||
| - "deno" | ||
| options: | ||
| cache: false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The install task is defined to run deno task install, but the install task has been removed from the root deno.json. This will cause the task to fail. The correct way to install dependencies seems to be pnpm install. If this task is still needed, it should be updated to a valid command. Otherwise, it should be removed.
moon.yml
Outdated
| codegen: | ||
| command: "deno task codegen" | ||
| toolchains: | ||
| - "deno" | ||
| inputs: | ||
| - "packages/vocab/src/*.yaml" | ||
| - "/mise.toml" | ||
| options: | ||
| cache: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The codegen task is defined to run deno task codegen, which is no longer defined in the root deno.json. The codegen logic is now encapsulated within the @fedify/vocab package's moon.yml. This root-level task seems redundant and will fail. You should probably remove this task and have other tasks depend on vocab:codegen directly when needed.
moon.yml
Outdated
|
|
||
| # === Git Hooks === | ||
| hooks.install: | ||
| command: "mise generate git-pre-commit --write --task=check" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The hooks.install task uses mise generate git-pre-commit --write --task=check. This will generate a pre-commit hook that runs mise run check. However, the check task has been removed from mise.toml and is now a moon task. This hook will fail. You should update this command to generate a hook that runs the moon check task, for example by using mise generate git-pre-commit --write --command "pnpm moon run :check".
command: "mise generate git-pre-commit --write --command \"pnpm moon run :check\""
package.json
Outdated
| ] | ||
| }, | ||
| "devDependencies": { | ||
| "@moonrepo/cli": "2.0.0-rc.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
packages/fedify/moon.yml
Outdated
| deps: | ||
| - "~:build" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The check task has a dependency on the build task. Static analysis tasks like formatting, linting, and type-checking usually don't require a full build of the package and its dependencies. This dependency makes the check task slower than necessary. The deno check command will require generated vocabulary files, so a dependency on vocab:codegen would be more appropriate and efficient.
deps:
- "vocab:codegen"
pnpm-lock.yaml
Outdated
| keygrip@1.1.0: | ||
| resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==} | ||
| engines: {node: '>= 0.6'} | ||
| deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
d225caa to
c7d2108
Compare
This pull request is not ready for review yet. I don't recommend to look around this pull request now.
Summary
Briefly describe the main purpose and scope of this PR.
Related issue
Reference the related issue(s) by number, e.g.:
Changes
List the specific modifications made in this PR.
Focus on what was changed without going into detail about impact.
Benefits
Describe the advantages or improvements brought by these changes.
Explain how these changes affect the project, users, or performance.
Checklist
mise teston your machine?Additional notes
Include any other information, context, or considerations.