Add config with git resolved package#57
Conversation
In order to test new feature to resolve packages from git in permissive mode. Signed-off-by: Jacob Baungard Hansen <jacobbaungard@redhat.com>
Summary of ChangesHello, 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 introduces a new configuration designed to thoroughly test Yarnberry's package resolution features, particularly focusing on permissive mode for Git-resolved packages. It sets up a diverse set of dependencies using various resolution strategies, including direct Git URLs, local file paths, portals, workspaces, and custom patches. The changes also include a new application entry point and updated documentation to reflect the repository's role as a comprehensive integration test environment for Yarnberry workflows. Highlights
🧠 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
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.
Code Review
This pull request adds a new integration test case for Yarnberry, including a complex package.json with various dependency types to test package resolution. The changes include a new README.md for the test case, a sample TypeScript application, and several local and external packages for dependencies. My review focuses on improving documentation clarity, TypeScript code style, and pointing out a potential issue with a large setTimeout value. Overall, the PR effectively sets up a comprehensive test scenario.
| - [ ] ~~Git~~ | ||
| - [ ] ~~GitHub~~ |
There was a problem hiding this comment.
The PR's title and description state that this change is for testing git-resolved packages, but this checklist indicates that Git and GitHub protocols are not being tested. This is confusing. Since package.json includes dependencies from git repositories via HTTPS, I suggest updating this to reflect that.
| - [ ] ~~Git~~ | |
| - [ ] ~~GitHub~~ | |
| - [x] Git | |
| - [x] GitHub |
| const yargs = require('yargs/yargs') | ||
| const { hideBin } = require('yargs/helpers') | ||
| const { format } = require('date-in-spanish') // fecha.format | ||
| const { answerMeTheseQuestionsThree } = require('old-man-from-scene-24') | ||
| const holyHandGrenade = require('holy-hand-grenade') |
There was a problem hiding this comment.
While using require works here, it's more idiomatic in TypeScript to use ES6-style import statements. This improves readability and allows for better static analysis and type checking, especially since tsconfig.json has esModuleInterop enabled.
| const yargs = require('yargs/yargs') | |
| const { hideBin } = require('yargs/helpers') | |
| const { format } = require('date-in-spanish') // fecha.format | |
| const { answerMeTheseQuestionsThree } = require('old-man-from-scene-24') | |
| const holyHandGrenade = require('holy-hand-grenade') | |
| import yargs from 'yargs/yargs'; | |
| import { hideBin } from 'yargs/helpers'; | |
| import { format } from 'date-in-spanish'; | |
| import { answerMeTheseQuestionsThree } from 'old-man-from-scene-24'; | |
| import holyHandGrenade from 'holy-hand-grenade'; |
| let sevenPointFiveMillionYears = 7_500_000 * 31_557_600 * 1000 | ||
| setTimeout(() => { console.log('42') }, sevenPointFiveMillionYears); |
There was a problem hiding this comment.
The calculated value for sevenPointFiveMillionYears is extremely large and exceeds the maximum value that can be used for a setTimeout delay (which is a 32-bit signed integer, 2,147,483,647 ms, or about 24.8 days). In Node.js and browsers, providing a value larger than this will cause the timeout to execute on the next tick (almost immediately). If this is intended as a joke, it's fine, but I wanted to point out this behavior in case it was unintentional.
In order to test new feature to resolve packages from git in permissive mode.
related: hermetoproject/hermeto#1405 / hermetoproject/hermeto#1295