fix(engines): fixed defined node version to account for the higher requirement from the npm plugin (#2088)
This commit is contained in:
		
							parent
							
								
									5edff69580
								
							
						
					
					
						commit
						ea52e1775a
					
				
							
								
								
									
										6
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/test.yml
									
									
									
									
										vendored
									
									
								
							| @ -17,7 +17,7 @@ jobs: | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: | ||||
|           - 10.18.0 | ||||
|           - 10.19.0 | ||||
|           - 12 | ||||
|           - 14 | ||||
| 
 | ||||
| @ -32,8 +32,6 @@ jobs: | ||||
|         with: | ||||
|           node-version: ${{ matrix.node-version }} | ||||
|           cache: npm | ||||
|       - name: Ensure dependencies are compatible with the version of node | ||||
|         run: echo 'engine-strict=true' >> .npmrc | ||||
|       - run: npm ci | ||||
|       - run: npm run test:ci | ||||
| 
 | ||||
| @ -48,4 +46,6 @@ jobs: | ||||
|         with: | ||||
|           cache: npm | ||||
|       - run: npm ci | ||||
|       - name: Ensure dependencies are compatible with the version of node | ||||
|         run: npx ls-engines@0.4 | ||||
|       - run: npm run lint | ||||
|  | ||||
| @ -97,7 +97,7 @@ In order to use **semantic-release** you need: | ||||
| - To host your code in a [Git repository](https://git-scm.com) | ||||
| - Use a Continuous Integration service that allows you to [securely set up credentials](docs/usage/ci-configuration.md#authentication) | ||||
| - Git CLI version [2.7.1 or higher](docs/support/FAQ.md#why-does-semantic-release-require-git-version--271) installed in your Continuous Integration environment | ||||
| - [Node.js](https://nodejs.org) version [10.18 or higher](docs/support/FAQ.md#why-does-semantic-release-require-node-version--1018) installed in your Continuous Integration environment | ||||
| - [Node.js](https://nodejs.org) version [10.19 or higher](docs/support/FAQ.md#why-does-semantic-release-require-node-version--1019) installed in your Continuous Integration environment | ||||
| 
 | ||||
| ## Documentation | ||||
| 
 | ||||
|  | ||||
| @ -10,11 +10,11 @@ In this example a publish type [`NPM_TOKEN`](https://docs.npmjs.com/creating-and | ||||
| 
 | ||||
| [GitHub Actions](https://github.com/features/actions) support [Workflows](https://help.github.com/en/articles/configuring-workflows), allowing to run tests on multiple Node versions and publish a release only when all test pass. | ||||
| 
 | ||||
| **Note**: The publish pipeline must run on [Node version >= 10.18](../support/FAQ.md#why-does-semantic-release-require-node-version--1018). | ||||
| **Note**: The publish pipeline must run on [Node version >= 10.19](../support/FAQ.md#why-does-semantic-release-require-node-version--1019). | ||||
| 
 | ||||
| ### `.github/workflows/release.yml` configuration for Node projects | ||||
| 
 | ||||
| The following is a minimal configuration for [`semantic-release`](https://github.com/semantic-release/semantic-release) with a build running on Node 12 when a new commit is pushed to a `master` branch. See [Configuring a Workflow](https://help.github.com/en/articles/configuring-a-workflow) for additional configuration options. | ||||
| The following is a minimal configuration for [`semantic-release`](https://github.com/semantic-release/semantic-release) with a build running on Node 10.19 when a new commit is pushed to a `master` branch. See [Configuring a Workflow](https://help.github.com/en/articles/configuring-a-workflow) for additional configuration options. | ||||
| 
 | ||||
| ```yaml | ||||
| name: Release | ||||
| @ -34,7 +34,7 @@ jobs: | ||||
|       - name: Setup Node.js | ||||
|         uses: actions/setup-node@v1 | ||||
|         with: | ||||
|           node-version: 12 | ||||
|           node-version: '10.19' | ||||
|       - name: Install dependencies | ||||
|         run: npm ci | ||||
|       - name: Release | ||||
|  | ||||
| @ -10,7 +10,7 @@ The [Authentication](../usage/ci-configuration.md#authentication) environment va | ||||
| 
 | ||||
| GitLab CI supports [Pipelines](https://docs.gitlab.com/ee/ci/pipelines.html) allowing to test on multiple Node versions and publishing a release only when all test pass. | ||||
| 
 | ||||
| **Note**: The publish pipeline must run a [Node >= 10.18 version](../support/FAQ.md#why-does-semantic-release-require-node-version--1018). | ||||
| **Note**: The publish pipeline must run a [Node >= 10.19 version](../support/FAQ.md#why-does-semantic-release-require-node-version--1019). | ||||
| 
 | ||||
| ### `.gitlab-ci.yml` configuration for Node projects | ||||
| 
 | ||||
|  | ||||
| @ -10,7 +10,7 @@ Alternatively, the default `NPM_TOKEN` and `GH_TOKEN` can be easily [setup with | ||||
| 
 | ||||
| ### `Jenkinsfile (Declarative Pipeline)` configuration for a Node.js job | ||||
| 
 | ||||
| **Note**: The publish pipeline must run a [Node >= 10.18 version](../support/FAQ.md#why-does-semantic-release-require-node-version--1018). | ||||
| **Note**: The publish pipeline must run a [Node >= 10.19 version](../support/FAQ.md#why-does-semantic-release-require-node-version--1019). | ||||
| 
 | ||||
| This example is a minimal configuration for **semantic-release** with a build running Node 10.18. See [Jenkins documentation](https://www.jenkins.io/doc/) for additional configuration options. | ||||
| 
 | ||||
| @ -35,7 +35,7 @@ pipeline { | ||||
|         } | ||||
|         stage('Release') { | ||||
|             tools { | ||||
|             nodejs "node 10.18" | ||||
|             nodejs "node 10.19" | ||||
|             } | ||||
|             steps { | ||||
|                 sh ''' | ||||
|  | ||||
| @ -10,7 +10,7 @@ Alternatively, the default `NPM_TOKEN` and `GH_TOKEN` can be easily [setup with | ||||
| 
 | ||||
| ### `.travis.yml` configuration for multiple Node.js jobs | ||||
| 
 | ||||
| This example is a minimal configuration for **semantic-release** with a build running Node 6 and 8. See [Travis - Customizing the Build](https://docs.travis-ci.com/user/customizing-the-build) for additional configuration options. | ||||
| This example is a minimal configuration for **semantic-release** with a build running Node 10 and 12. See [Travis - Customizing the Build](https://docs.travis-ci.com/user/customizing-the-build) for additional configuration options. | ||||
| 
 | ||||
| This example creates a `release` [build stage](https://docs.travis-ci.com/user/build-stages) that [runs `semantic-release` only after all test jobs are successful](../usage/ci-configuration.md#run-semantic-release-only-after-all-tests-succeeded). | ||||
| 
 | ||||
| @ -24,8 +24,8 @@ It's recommended to run the `semantic-release` command in the [Travis `deploy` s | ||||
| language: node_js | ||||
| 
 | ||||
| node_js: | ||||
|   - 8 | ||||
|   - 6 | ||||
|   - 10 | ||||
|   - 12 | ||||
| 
 | ||||
| jobs: | ||||
|   include: | ||||
|  | ||||
| @ -38,44 +38,14 @@ If using npm hook scripts is not possible, and alternative solution is to [`@sem | ||||
| 
 | ||||
| Yes with the [dry-run options](../usage/configuration.md#dryrun) which prints to the console the next version to be published and the release notes. | ||||
| 
 | ||||
| ## Can I use semantic-release with Yarn? | ||||
| 
 | ||||
| If you are using a [local](../usage/installation.md#local-installation) **semantic-release** installation and run multiple CI jobs with different versions, the `yarn install` command will fail on jobs running with Node < 8 as **semantic-release** requires [Node >= 10.18](#why-does-semantic-release-require-node-version--1018) and specifies it in its `package.json`s [`engines`](https://docs.npmjs.com/files/package.json#engines) key. | ||||
| 
 | ||||
| The recommended solution is to use the [Yarn](https://yarnpkg.com) [--ignore-engines](https://yarnpkg.com/en/docs/cli/install#toc-yarn-install-ignore-engines) option to install the project dependencies on the CI environment, so Yarn will ignore the **semantic-release**'s `engines` key: | ||||
| 
 | ||||
| ```bash | ||||
| $ yarn install --ignore-engines | ||||
| ``` | ||||
| 
 | ||||
| **Note**: Several CI services use Yarn by default if your repository contains a `yarn.lock` file. So you should override the install step to specify `yarn install --ignore-engines`. | ||||
| 
 | ||||
| Alternatively you can use a [global](../usage/installation.md#global-installation) **semantic-release** installation and make sure to install and run the `semantic-release` command only in a CI jobs running with Node >= 10.18. | ||||
| 
 | ||||
| If your CI environment provides [nvm](https://github.com/creationix/nvm) you can switch to Node 8 before installing and running the `semantic-release` command: | ||||
| 
 | ||||
| ```bash | ||||
| $ nvm install 8 && yarn global add semantic-release && semantic-release | ||||
| ``` | ||||
| 
 | ||||
| See the [CI configuration recipes](../recipes/README.md#ci-configurations) for more details on specific CI environments. | ||||
| 
 | ||||
| As `semantic-release` is recommended to be executed with [`npx`](https://www.npmjs.com/package/npx) an alternative is required for usage with Yarn. Even though it is possible to install npx with Yarn, it's not recommended. Yarn and npx would be using different cache locations. | ||||
| 
 | ||||
| For [local installation](../usage/installation.md#local-installation) replace | ||||
| `npx semantic-release` with `yarn run semantic-release`. | ||||
| 
 | ||||
| For [global installation](../usage/installation.md#global-installation) replace | ||||
| `npx semantic-release` with `yarn global add semantic-release && semantic-release`. | ||||
| 
 | ||||
| ## Can I use semantic-release to publish non-JavaScript packages? | ||||
| 
 | ||||
| Yes, **semantic-release** is a Node CLI application but it can be used to publish any type of packages. | ||||
| Yes, **semantic-release** is a Node CLI application, but it can be used to publish any type of packages. | ||||
| 
 | ||||
| To publish a non-Node package (without a `package.json`) you would need to: | ||||
| - Use a [global](../usage/installation.md#global-installation) **semantic-release** installation | ||||
| - Set **semantic-release** [options](../usage/configuration.md#options) via [CLI arguments or rc file](../usage/configuration.md#configuration) | ||||
| - Make sure your CI job executing the `semantic-release` command has access to [Node >= 10.18](#why-does-semantic-release-require-node-version--1018) to execute the `semantic-release` command | ||||
| - Make sure your CI job executing the `semantic-release` command has access to [Node >= 10.19](#why-does-semantic-release-require-node-version--1019) to execute the `semantic-release` command | ||||
| 
 | ||||
| See the [CI configuration recipes](../recipes/README.md#ci-configurations) for more details on specific CI environments. | ||||
| 
 | ||||
| @ -234,9 +204,9 @@ See [“Introduction to SemVer” - Irina Gebauer](https://blog.greenkeeper.io/i | ||||
| 
 | ||||
| In addition the [verify conditions step](../../README.md#release-steps) verifies that all necessary conditions for proceeding with a release are met, and a new release will be performed [only if all your tests pass](../usage/ci-configuration.md#run-semantic-release-only-after-all-tests-succeeded). | ||||
| 
 | ||||
| ## Why does semantic-release require Node version >= 10.18? | ||||
| ## Why does semantic-release require Node version >= 10.19? | ||||
| 
 | ||||
| **semantic-release** is written using the latest [ECMAScript 2017](https://www.ecma-international.org/publications/standards/Ecma-262.htm) features, without transpilation which **requires Node version 10.18 or higher**. | ||||
| **semantic-release** is written using the latest [ECMAScript 2017](https://www.ecma-international.org/publications/standards/Ecma-262.htm) features, without transpilation which **requires Node version 10.19 or higher**. | ||||
| 
 | ||||
| See [Node version requirement](./node-version.md#node-version-requirement) for more details and solutions. | ||||
| 
 | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| # Node Support Policy | ||||
| 
 | ||||
| We only support [Long-Term Support](https://github.com/nodejs/Release) versions of Node starting with [Node 8.9.0 (LTS)](https://nodejs.org/en/blog/release/v8.9.0). | ||||
| We only support [Long-Term Support](https://github.com/nodejs/Release) versions of Node starting with [Node 10.19 (LTS)](https://nodejs.org/en/blog/release/v10.19.0). | ||||
| 
 | ||||
| We specifically limit our support to LTS versions of Node, not because this package won't work on other versions, but because we have a limited amount of time, and supporting LTS offers the greatest return on that investment. | ||||
| 
 | ||||
|  | ||||
| @ -1,16 +1,16 @@ | ||||
| # Node version requirement | ||||
| 
 | ||||
| **semantic-release** is written using the latest [ECMAScript 2017](https://www.ecma-international.org/publications/standards/Ecma-262.htm) features, without transpilation which requires **requires Node version 10 or higher**. | ||||
| **semantic-release** is written using the latest [ECMAScript 2017](https://www.ecma-international.org/publications/standards/Ecma-262.htm) features, without transpilation which **requires Node version 10.19 or higher**. | ||||
| 
 | ||||
| **semantic-release** is meant to be used in a CI environment as a development support tool, not as a production dependency. Therefore the only constraint is to run the `semantic-release` in a CI environment providing Node 8 or higher. | ||||
| **semantic-release** is meant to be used in a CI environment as a development support tool, not as a production dependency. Therefore, the only constraint is to run the `semantic-release` in a CI environment providing Node 10.19 or higher. | ||||
| 
 | ||||
| See our [Node Support Policy](node-support-policy.md) for our long-term promise regarding Node version support. | ||||
| 
 | ||||
| ## Recommended solution | ||||
| 
 | ||||
| ### Run at least one CI job with Node >= 10.18 | ||||
| ### Run at least one CI job with Node >= 10.19 | ||||
| 
 | ||||
| The recommended approach is to run the `semantic-release` command from a CI job running on Node 10.18 or higher. This can either be a job used by your project to test on Node >= 10.18 or a dedicated job for the release steps. | ||||
| The recommended approach is to run the `semantic-release` command from a CI job running on Node 10.19 or higher. This can either be a job used by your project to test on Node >= 10.19 or a dedicated job for the release steps. | ||||
| 
 | ||||
| See [CI configuration](../usage/ci-configuration.md) and [CI configuration recipes](../recipes/README.md#ci-configurations) for more details. | ||||
| 
 | ||||
| @ -18,18 +18,18 @@ See [CI configuration](../usage/ci-configuration.md) and [CI configuration recip | ||||
| 
 | ||||
| ### Use `npx` | ||||
| 
 | ||||
| `npx` is included with npm >= 5.2 and can be used to download the latest [Node 8 package published on npm](https://www.npmjs.com/package/node). Use it to execute the `semantic-release` command. | ||||
| `npx` is included with npm >= 5.2 and can be used to download the latest [Node 10 package published on npm](https://www.npmjs.com/package/node). Use it to execute the `semantic-release` command. | ||||
| 
 | ||||
| ```bash | ||||
| $ npx -p node@8 -c "npx semantic-release" | ||||
| $ npx -p node@10 -c "npx semantic-release" | ||||
| ``` | ||||
| 
 | ||||
| **Note:**: See [What is npx](./FAQ.md#what-is-npx) for more details. | ||||
| 
 | ||||
| ### Use `nvm` | ||||
| 
 | ||||
| If your CI environment provides [nvm](https://github.com/creationix/nvm) you can use it to switch to Node 8 before running the `semantic-release` command. | ||||
| If your CI environment provides [nvm](https://github.com/creationix/nvm) you can use it to switch to Node 10.19 before running the `semantic-release` command. | ||||
| 
 | ||||
| ```bash | ||||
| $ nvm install 8 && npx semantic-release | ||||
| $ nvm install 10.19 && npx semantic-release | ||||
| ``` | ||||
|  | ||||
| @ -24,6 +24,6 @@ For other type of projects we recommend installing **semantic-release** directly | ||||
| $ npx semantic-release | ||||
| ``` | ||||
| 
 | ||||
| **Note**: For a global installation, it's recommended to specify the major **semantic-release** version to install (for example with with `npx semantic-release@15`). This way your build will not automatically use the next major **semantic-release** release that could possibly break your build. You will have to upgrade manually when a new major version is released. | ||||
| **Note**: For a global installation, it's recommended to specify the major **semantic-release** version to install (for example with with `npx semantic-release@17`). This way your build will not automatically use the next major **semantic-release** release that could possibly break your build. You will have to upgrade manually when a new major version is released. | ||||
| 
 | ||||
| **Note**: `npx` is a tool bundled with `npm@>=5.2.0`. It is used to conveniently install the semantic-release binary and to execute it. See [What is npx](../support/FAQ.md#what-is-npx) for more details. | ||||
|  | ||||
							
								
								
									
										19
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										19
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -479,6 +479,7 @@ | ||||
|         "bottleneck": "^2.18.1", | ||||
|         "debug": "^4.0.0", | ||||
|         "dir-glob": "^3.0.0", | ||||
|         "fs-extra": "^9.0.0", | ||||
|         "globby": "^11.0.0", | ||||
|         "http-proxy-agent": "^4.0.0", | ||||
|         "https-proxy-agent": "^5.0.0", | ||||
| @ -509,6 +510,7 @@ | ||||
|         "@semantic-release/error": "^2.2.0", | ||||
|         "aggregate-error": "^3.0.0", | ||||
|         "execa": "^5.0.0", | ||||
|         "fs-extra": "^9.0.0", | ||||
|         "lodash": "^4.17.15", | ||||
|         "nerf-dart": "^1.0.0", | ||||
|         "normalize-url": "^5.0.0", | ||||
| @ -1121,8 +1123,7 @@ | ||||
|     "at-least-node": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", | ||||
|       "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", | ||||
|       "dev": true | ||||
|       "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" | ||||
|     }, | ||||
|     "atob": { | ||||
|       "version": "2.1.2", | ||||
| @ -4369,11 +4370,11 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "fs-extra": { | ||||
|       "version": "10.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", | ||||
|       "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", | ||||
|       "dev": true, | ||||
|       "version": "9.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", | ||||
|       "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", | ||||
|       "requires": { | ||||
|         "at-least-node": "^1.0.0", | ||||
|         "graceful-fs": "^4.2.0", | ||||
|         "jsonfile": "^6.0.1", | ||||
|         "universalify": "^2.0.0" | ||||
| @ -6021,7 +6022,6 @@ | ||||
|       "version": "6.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", | ||||
|       "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "graceful-fs": "^4.1.6", | ||||
|         "universalify": "^2.0.0" | ||||
| @ -9008,7 +9008,7 @@ | ||||
|           "bundled": true | ||||
|         }, | ||||
|         "path-parse": { | ||||
|           "version": "1.0.7", | ||||
|           "version": "1.0.6", | ||||
|           "bundled": true | ||||
|         }, | ||||
|         "performance-now": { | ||||
| @ -12461,8 +12461,7 @@ | ||||
|     "universalify": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", | ||||
|       "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", | ||||
|       "dev": true | ||||
|       "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" | ||||
|     }, | ||||
|     "unset-value": { | ||||
|       "version": "1.0.0", | ||||
|  | ||||
| @ -56,7 +56,7 @@ | ||||
|     "delay": "5.0.0", | ||||
|     "dockerode": "3.3.0", | ||||
|     "file-url": "3.0.0", | ||||
|     "fs-extra": "10.0.0", | ||||
|     "fs-extra": "9.1.0", | ||||
|     "got": "11.8.2", | ||||
|     "js-yaml": "4.1.0", | ||||
|     "mockserver-client": "5.11.2", | ||||
| @ -70,7 +70,7 @@ | ||||
|     "xo": "0.29.1" | ||||
|   }, | ||||
|   "engines": { | ||||
|     "node": ">=10.18" | ||||
|     "node": ">=10.19" | ||||
|   }, | ||||
|   "files": [ | ||||
|     "bin", | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user