From 0e262e0ed47c215b5f8e36e53291919a3fbe0c2b Mon Sep 17 00:00:00 2001 From: Michal Piechowiak Date: Tue, 2 Apr 2024 11:58:30 +0200 Subject: [PATCH] chore: initial readme cleanup (#392) * chore: cleanup current CONTRIBUTING.md * chore: move contributing related content from README to contributing * chore: minor updates/corrections in contributing.md * chore: copy v4 runtime readme over * chore: initial go-through old README trying to remove outdated and update things that might still be relevant * chore: use v4 package README and not v4 repo README * Update README.md Co-authored-by: Rob Stanford * chore: format with prettier * chore: trigger tests Release-As: 2.0.0 --------- Co-authored-by: Rob Stanford Co-authored-by: pieh --- CONTRIBUTING.md | 112 ++++++++++++++++++++++++++++++++++++---- README.md | 123 +++++++------------------------------------- next-js-runtime.png | Bin 0 -> 44041 bytes 3 files changed, 121 insertions(+), 114 deletions(-) create mode 100644 next-js-runtime.png diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f1ecd7a971..00fd94cb12 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,13 +10,10 @@ Before working on an issue, ask to be assigned to it. This makes it clear to oth contributors that someone is working on the issue. When creating a PR, please use the template. The information in the template helps maintainers -review your pull request.``` +review your pull request. This project was made with ❤️. The simplest way to give back is by starring and sharing it online. -Everyone is welcome regardless of personal background. We enforce a -[Code of conduct](CODE_OF_CONDUCT.md) in order to promote a positive and inclusive environment. - ## Development process First fork and clone the repository. If you're not sure how to do this, please watch @@ -34,6 +31,108 @@ Make sure everything is correctly setup with: npm test ``` +## Lambda Folder structure: + +For a simple next.js app + +``` +/___netlify-server-handler +├── .netlify +│ ├── tags-manifest.json +│ └── dist // the compiled runtime code +│ └── run +│ ├── handlers +│ │ ├── server.js +│ │ └── cache.cjs +│ └── next.cjs +├── .next // or distDir name from the next.config.js +│ └── // content from standalone +├── run-config.json // the config object from the required-server-files.json +├── node_modules +├── ___netlify-server-handler.json +├── ___netlify-server-handler.mjs +└── package.json +``` + +## Testing + +The repo includes three types of tests: e2e tests in the repo that use Playwright, integration and +unit tests that use Vitest. + +By default the e2e, integration and unit tests run against the latest version of Next.js. To run +tests against a specific version, set the `NEXT_VERSION` environment variable to the desired +version. + +By default, PRs will run the tests against the latest version of Next.js. To run tests against +`latest`, `canary` and `13.5.1`, apply the `test all versions` label to the PR when you create it. +These also run nightly and on release PRs. + +### Integration testing + +> **Prerequisite** Run `npm run build` before running integration tests. + +How to add new integration test scenarios to the application: + +1. Create a new folder under `tests/fixtures/` +2. Adapt the `next.config.js` to be a standalone application +3. Create a `postinstall` script that runs the `next build`. It's important to notice that the + integration tests rely on a already built next.js application in this folder. They rely on the + `.next` folder. +4. Add your test + +> Currently the tests require a built version of the `dist/run/handlers/cache.cjs` so you need to +> run `npm run build` before executing the integration tests. + +In addition, the integration tests need to be prepared before first use. You can do this by running +`npm run pretest`. To speed up this process and build only the fixtures whose name starts with a +given prefix, run `npm run pretest -- `. + +### E2E testing + +> **Prerequisite** +> +> Needs the `netlify-cli` installed and being logged in having access to Netlify Testing +> Organization or providing your own site ID with NETLIFY_SITE_ID environment variable. + +The e2e tests can be invoked with `npm run e2e` and perform a full e2e test. This means they do the +following: + +1. Building the next-runtime (just running `npm run build` in the repository) +2. Creating a temp directory and copying the provided fixture over to the directory. +3. Packing the runtime with `npm pack` to the temp directory. +4. Installing the runtime from the created zip artifact of `npm pack` (this is like installing a + node_module from the registry) +5. Creating a `netlify.toml` inside the temp directory of the fixture and adding the runtime as a + plugin. +6. Running `netlify deploy --build` invoking the runtime. This will use the + [next-runtime-testing](https://app.netlify.com/sites/next-runtime-testing/overview) as site to + deploy to. +7. Using the `deployId` and `url` of the deployed site to run some + [playwright](https://playwright.dev/) tests against, asserting the correctness of the runtime. +8. After the tests where run successfully, it will delete the deployment again and clean everything + up. In case of a failure, the deploy won't be cleaned up to leave it for troubleshooting + purposes. + +> [!TIP] If you'd like to always keep the deployment and the local fixture around for +> troubleshooting, run `E2E_PERSIST=1 npm run e2e`. + +### Next.js tests + +There is a script `run-local-test.sh` and GitHub workflow that runs the e2e tests from the Next.js +repo against this repo. It requires that `next.js` is checked out in the same parent directory as +this repo, and is run from this repo with `./run-local-test.sh your-test-pattern-here`. + +#### cleanup old deploys + +To cleanup old and dangling deploys from failed builds you can run the following script: + +```bash +npx tsx ./tools/e2e/cleanup-deploys.ts +``` + +This will cleanup all created deploys on the +[next-runtime-testing](https://app.netlify.com/sites/next-runtime-testing/overview) site. + ## How to write commit messages We use [Conventional Commit messages](https://www.conventionalcommits.org/) to automate version @@ -45,11 +144,6 @@ Most common commit message prefixes are: - `feat:` which represents a new feature, and generate a minor release. - `feat!:`, `fix!:` or `refactor!:` and generate a major release. -## Releasing - -This repository uses [release-please](https://github.com/googleapis/release-please) to automate its -releases. - ## How to make a minimal reproduction A reproducible test case is a small Next.js site built to demonstrate a problem - often this problem diff --git a/README.md b/README.md index 4138be43a4..36c7cebd96 100644 --- a/README.md +++ b/README.md @@ -1,105 +1,18 @@ -# Next.js Runtime - -Next.js is supported natively on Netlify, and in most cases you will not need to install or -configure anything. This repo includes the packages used to support Next.js on Netlify. - -## Lambda Folder structure: - -For a simple next.js app - -``` -/___netlify-server-handler -├── .netlify -│ ├── tags-manifest.json -│ └── dist // the compiled runtime code -│ └── run -│ ├── handlers -│ │ ├── server.js -│ │ └── cache.cjs -│ └── next.cjs -├── .next // or distDir name from the next.config.js -│ └── // content from standalone -├── run-config.json // the config object from the required-server-files.json -├── node_modules -├── ___netlify-server-handler.json -├── ___netlify-server-handler.mjs -└── package.json -``` - -## Testing - -The repo includes two types of tests: e2e tests in the repo that use Playwright, integration tests -that use Vitest. - -By default the e2e and integration tests run against the latest version of Next.js. To run tests -against a specific version, set the `NEXT_VERSION` environment variable to the desired version. - -By default, PRs will run the integration tests against the latest version of Next.js. To run tests -against `latest`, `canary` and `13.5.1`, apply the `test all versions` label to the PR when you -create it. These also run nightly and on release PRs. - -### Integration testing - -> **Prerequisite** Run `npm run build` before running integration tests. - -How to add new integration test scenarios to the application: - -1. Create a new folder under `tests/fixtures/` -2. Adapt the `next.config.js` to be a standalone application -3. Create a `postinstall` script that runs the `next build`. It's important to notice that the - integration tests rely on a already built next.js application in this folder. They rely on the - `.next` folder. -4. Add your test - -> Currently the tests require a built version of the `dist/run/handlers/cache.cjs` so you need to -> run `npm run build` before executing the integration tests. - -In addition, the integration tests need to be prepared before first use. You can do this by running -`npm run pretest`. To speed up this process and build only the fixtures whose name starts with a -given prefix, run `npm run pretest -- `. - -### E2E testing - -> **Prerequisite** -> -> Needs the `netlify-cli` installed and being logged in having access to Netlify Testing -> Organization - -The e2e tests can be invoked with `npm run e2e` and perform a full e2e test. This means they do the -following: - -1. Building the next-runtime (just running `npm run build` in the repository) -2. Creating a temp directory and copying the provided fixture over to the directory. -3. Packing the runtime with `npm pack` to the temp directory. -4. Installing the runtime from the created zip artifact of `npm pack` (this is like installing a - node_module from the registry) -5. Creating a `netlify.toml` inside the temp directory of the fixture and adding the runtime as a - plugin. -6. Running `netlify deploy --build` invoking the runtime. This will use the - [next-runtime-testing](https://app.netlify.com/sites/next-runtime-testing/overview) as site to - deploy to. -7. Using the `deployId` and `url` of the deployed site to run some - [playwright](https://playwright.dev/) tests against, asserting the correctness of the runtime. -8. After the tests where run successfully, it will delete the deployment again and clean everything - up. In case of a failure, the deploy won't be cleaned up to leave it for troubleshooting - purposes. - -> [!TIP] If you'd like to always keep the deployment and the local fixture around for -> troubleshooting, run `E2E_PERSIST=1 npm run e2e`. - -### Next.js tests - -There is a script `run-local-test.sh` and GitHub workflow that runs the e2e tests from the Next.js -repo against this repo. It requires that `next.js` is checked out in the same parent directory as -this repo, and is run from this repo with `./run-local-test.sh your-test-pattern-here`. - -#### cleanup old deploys - -To cleanup old and dangling deploys from failed builds you can run the following script: - -```bash -npx tsx ./tools/e2e/cleanup-deploys.ts -``` - -This will cleanup all created deploys on the -[next-runtime-testing](https://app.netlify.com/sites/next-runtime-testing/overview) site. +![Next.js Runtime](https://github.com/netlify/next-runtime/raw/main/next-js-runtime.png) + +# `@netlify/plugin-nextjs` + +

+ + + + + + +

+ +This package handles the build process and creates the runtime environment for Next.js sites on +Netlify. You should not normally need to install it yourself, as it is used automatically during +builds of Next.js sites. See +[the docs for using Next.js on Netlify](https://docs.netlify.com/frameworks/next-js/overview/) for +more details. diff --git a/next-js-runtime.png b/next-js-runtime.png new file mode 100644 index 0000000000000000000000000000000000000000..09f8c1f2b9da6a440df2e7e6f753c809074fd834 GIT binary patch literal 44041 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 N{v$3m= literal 0 HcmV?d00001