Skip to content
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

examples: update gitignore files for parity for yarn recommendations #71956

Merged
merged 2 commits into from
Dec 17, 2024

Conversation

Marukome0743
Copy link
Contributor

@Marukome0743 Marukome0743 commented Oct 28, 2024

What?

Update examples .gitignore files for parity with Yarn's official recommendations, accounting for Yarn's modern Plug-n-Play functionality.

Why?

New projects initialized with create-next-app presently add various extraneous files from the Yarn cache to the initial commit. This is most notable in the case of the Next SWC binary, which may exceed 100M in some environments (empirically, 64-bit Darwin and WSL2 Ubuntu, and very probably other unix/linux environments), and prevent users from pushing their new projects to free GitHub repositories without rewriting the commit history to exclude the extraneous files, or unnecessarily setting up Git LFS to include them.

How?

I have errored on the side of exclusion to enable users to push their CNA projects to GitHub as-is and for parity with other package managers, while still providing the opportunity to opt in to additional functionality provided by modern Yarn.

These changes follow the recommendations for non-Zero-Install configurations, as Zero-Install functionality is an extension on top of the base package manager experience, and may necessitate additional configuration and present additional complications for unsuspecting users, so I think it's best left up to the user to opt-in. On account of the majority of publicly available Next.js-based projects comprising general consumer-facing websites, it is my belief that the majority of Next projects would not benefit from Yarn's Zero-Install functionality, and that explicitly facilitating it by default would break status quo with all other non-Yarn CNA projects.

Contrary to the example .gitignores provided by Yarn, I've excluded the .yarn/sdks directory as it contains IDE-specific tooling; I feel it would be presumptuous for an environmentally-agnostic tool to target and provide package-manager-specific tooling for specific editors. This too should be left to the user to opt-in to and provide for their project if they deem necessary.

I have retained the current .gitignore's exclusion of the /.pnp directory for backwards compatibility with older versions of Yarn (the files therein have since been reallocated to the .yarn directory addressed by these changes, but I am not clear on when that delineation occurred or the prevalence of Yarn installations which depend on the former convention). Maintaining the exclusion here, in the worst case, implies additional downloads (on an order of magnitude merely similar to using npm from the outset) rather than failure.

CC: @samcx

Adding or Updating Examples

Sorry, something went wrong.

@ijjk ijjk added the examples Issue was opened via the examples template. label Oct 28, 2024
@ijjk
Copy link
Member

ijjk commented Oct 28, 2024

Allow CI Workflow Run

  • approve CI run for commit: c0be945

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

Sorry, something went wrong.

@ijjk
Copy link
Member

ijjk commented Oct 28, 2024

Allow CI Workflow Run

  • approve CI run for commit: 48957c9

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

Sorry, something went wrong.

@Marukome0743 Marukome0743 force-pushed the gitignore branch 2 times, most recently from 713a13e to ecc207a Compare October 30, 2024 00:26
@Marukome0743 Marukome0743 force-pushed the gitignore branch 2 times, most recently from 7a37f0d to 95c441b Compare November 11, 2024 00:38
@Marukome0743 Marukome0743 force-pushed the gitignore branch 2 times, most recently from 3ec071b to 853f869 Compare November 22, 2024 00:25
@Marukome0743 Marukome0743 force-pushed the gitignore branch 2 times, most recently from 7d46ef5 to 7eb9abc Compare December 3, 2024 00:27
@Marukome0743 Marukome0743 force-pushed the gitignore branch 3 times, most recently from 7002cf4 to 9382dba Compare December 10, 2024 00:46
@Marukome0743 Marukome0743 force-pushed the gitignore branch 4 times, most recently from 704057b to dad85fc Compare December 16, 2024 01:37
@samcx
Copy link
Member

samcx commented Dec 17, 2024

@Marukome0743 No need to merge canary, just ping the team (CI will fail if you do)

@samcx samcx self-requested a review December 17, 2024 00:27
Copy link
Member

@samcx samcx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for submitting a PR!

:lgtm:

@Marukome0743
Copy link
Contributor Author

@Marukome0743 No need to merge canary, just ping the team (CI will fail if you do)

Oh, sorry for my inconvinience.
May I ping you Mr. samcx if the example PR isn't reviewed over a month?
Someone hates pinging due to annoying.

@samcx
Copy link
Member

samcx commented Dec 17, 2024

@Marukome0743 That's fine with me!

@samcx samcx enabled auto-merge (squash) December 17, 2024 01:04
@ijjk
Copy link
Member

ijjk commented Dec 17, 2024

Stats from current PR

Default Build (Increase detected ⚠️)
General
vercel/next.js canary Marukome0743/next.js gitignore Change
buildDuration 17.2s 15.3s N/A
buildDurationCached 14.6s 12.2s N/A
nodeModulesSize 410 MB 410 MB
nextStartRea..uration (ms) 471ms 472ms N/A
Client Bundles (main, webpack)
vercel/next.js canary Marukome0743/next.js gitignore Change
1187-HASH.js gzip 51 kB 51 kB N/A
8276.HASH.js gzip 169 B 168 B N/A
8377-HASH.js gzip 5.36 kB 5.36 kB N/A
bccd1874-HASH.js gzip 53 kB 53 kB N/A
framework-HASH.js gzip 57.5 kB 57.5 kB N/A
main-app-HASH.js gzip 233 B 235 B N/A
main-HASH.js gzip 34.1 kB 34 kB N/A
webpack-HASH.js gzip 1.71 kB 1.71 kB N/A
Overall change 0 B 0 B
Legacy Client Bundles (polyfills)
vercel/next.js canary Marukome0743/next.js gitignore Change
polyfills-HASH.js gzip 39.4 kB 39.4 kB
Overall change 39.4 kB 39.4 kB
Client Pages
vercel/next.js canary Marukome0743/next.js gitignore Change
_app-HASH.js gzip 193 B 193 B
_error-HASH.js gzip 193 B 193 B
amp-HASH.js gzip 512 B 510 B N/A
css-HASH.js gzip 343 B 342 B N/A
dynamic-HASH.js gzip 1.84 kB 1.84 kB
edge-ssr-HASH.js gzip 265 B 265 B
head-HASH.js gzip 363 B 362 B N/A
hooks-HASH.js gzip 393 B 392 B N/A
image-HASH.js gzip 4.49 kB 4.49 kB N/A
index-HASH.js gzip 268 B 268 B
link-HASH.js gzip 2.35 kB 2.34 kB N/A
routerDirect..HASH.js gzip 328 B 328 B
script-HASH.js gzip 397 B 397 B
withRouter-HASH.js gzip 323 B 326 B N/A
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 3.59 kB 3.59 kB
Client Build Manifests
vercel/next.js canary Marukome0743/next.js gitignore Change
_buildManifest.js gzip 749 B 746 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary Marukome0743/next.js gitignore Change
index.html gzip 524 B 523 B N/A
link.html gzip 539 B 537 B N/A
withRouter.html gzip 520 B 519 B N/A
Overall change 0 B 0 B
Edge SSR bundle Size
vercel/next.js canary Marukome0743/next.js gitignore Change
edge-ssr.js gzip 128 kB 128 kB N/A
page.js gzip 204 kB 204 kB N/A
Overall change 0 B 0 B
Middleware size
vercel/next.js canary Marukome0743/next.js gitignore Change
middleware-b..fest.js gzip 671 B 668 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 31.2 kB 31.2 kB N/A
edge-runtime..pack.js gzip 844 B 844 B
Overall change 844 B 844 B
Next Runtimes
vercel/next.js canary Marukome0743/next.js gitignore Change
523-experime...dev.js gzip 322 B 322 B
523.runtime.dev.js gzip 314 B 314 B
app-page-exp...dev.js gzip 323 kB 323 kB
app-page-exp..prod.js gzip 127 kB 127 kB
app-page-tur..prod.js gzip 140 kB 140 kB
app-page-tur..prod.js gzip 135 kB 135 kB
app-page.run...dev.js gzip 314 kB 314 kB
app-page.run..prod.js gzip 123 kB 123 kB
app-route-ex...dev.js gzip 37.4 kB 37.4 kB
app-route-ex..prod.js gzip 25.5 kB 25.5 kB
app-route-tu..prod.js gzip 25.5 kB 25.5 kB
app-route-tu..prod.js gzip 25.3 kB 25.3 kB
app-route.ru...dev.js gzip 39 kB 39 kB
app-route.ru..prod.js gzip 25.3 kB 25.3 kB
pages-api-tu..prod.js gzip 9.69 kB 9.69 kB
pages-api.ru...dev.js gzip 11.6 kB 11.6 kB
pages-api.ru..prod.js gzip 9.68 kB 9.68 kB
pages-turbo...prod.js gzip 21.7 kB 21.7 kB
pages.runtim...dev.js gzip 27.4 kB 27.4 kB
pages.runtim..prod.js gzip 21.7 kB 21.7 kB
server.runti..prod.js gzip 916 kB 916 kB
Overall change 2.36 MB 2.36 MB
build cache Overall increase ⚠️
vercel/next.js canary Marukome0743/next.js gitignore Change
0.pack gzip 2.06 MB 2.06 MB ⚠️ +2.41 kB
index.pack gzip 72.7 kB 72.4 kB N/A
Overall change 2.06 MB 2.06 MB ⚠️ +2.41 kB
Diff details
Diff for main-HASH.js

Diff too large to display

Commit: 16c0196

@samcx samcx merged commit f54d597 into vercel:canary Dec 17, 2024
103 checks passed
@Marukome0743 Marukome0743 deleted the gitignore branch December 17, 2024 01:28
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 31, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
examples Issue was opened via the examples template. locked type: next
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants