docs(contributing): updated details about local verification
This commit is contained in:
		
							parent
							
								
									842c0eb8bc
								
							
						
					
					
						commit
						579259c578
					
				| @ -241,44 +241,80 @@ $ git clone https://github.com/semantic-release/<repo-name> | |||||||
| $ cd <repo-name> | $ cd <repo-name> | ||||||
| # Assign the original repo to a remote called "upstream" | # Assign the original repo to a remote called "upstream" | ||||||
| $ git remote add upstream https://github.com/semantic-release/<repo-name> | $ git remote add upstream https://github.com/semantic-release/<repo-name> | ||||||
|  | # Switch your node version to the version defined by the project as the development version | ||||||
|  | # This step assumes you have already installed and configured https://github.com/nvm-sh/nvm | ||||||
|  | # You may need to run `nvm install` if you have not already installed the development node version | ||||||
|  | $ nvm use | ||||||
| # Install the dependencies | # Install the dependencies | ||||||
| $ npm install | $ npm install | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ### Lint | ### Verification | ||||||
| 
 | 
 | ||||||
| [//]: # "TODO: rework these docs" | The `test` script is structured to execute as much of the verification for the project as possible. | ||||||
|  | Ensuring that the `test` script fully passes in the node version defined as the development version in the `.nvmrc` | ||||||
|  | minimizes the chances of the test workflow failing after pushing your changes. | ||||||
| 
 | 
 | ||||||
| All the [semantic-release](https://github.com/semantic-release) repositories use [XO](https://github.com/sindresorhus/xo) for linting and [Prettier](https://prettier.io) for formatting. | > [!IMPORTANT] | ||||||
| Prettier formatting will be automatically verified and fixed by XO. | > Before pushing your code changes, be sure to run the verification for the project with `npm test`. | ||||||
| 
 | 
 | ||||||
| Before pushing your code changes make sure there are no linting errors with `npm run lint`. | [npm-run-all2](https://www.npmjs.com/package/npm-run-all2) is used to enable running multiple independent lint and test | ||||||
|  | scripts together from the `test` script. | ||||||
|  | This enables the test script to not only run all scripts, but also parallelize some of the scripts to optimize the overall | ||||||
|  | time required for verification. | ||||||
| 
 | 
 | ||||||
| **Tips**: | When a failure occurs with the `test`, the output can be a bit confusing because there may be output from multiple parallel | ||||||
|  | scripts mixed together. | ||||||
|  | To investigate the failure with cleaner output, re-run the problematic script directly using the script name from the label | ||||||
|  | included on the left side of the output | ||||||
| 
 | 
 | ||||||
| - Most linting errors can be automatically fixed with `npm run lint -- --fix`. | ```shell | ||||||
| - Install the [XO plugin](https://github.com/sindresorhus/xo#editor-plugins) for your editor to see linting errors directly in your editor and automatically fix them on save. | $ npm run <script-name> | ||||||
|  | ``` | ||||||
| 
 | 
 | ||||||
| ### Tests | #### Lint | ||||||
| 
 | 
 | ||||||
| [//]: # "TODO: rework these docs too" | ##### Prettier | ||||||
| 
 | 
 | ||||||
| Running the integration test requires you to install [Docker](https://docs.docker.com/engine/installation) on your machine. | All the [semantic-release](https://github.com/semantic-release) repositories use [Prettier](https://prettier.io) for formatting. | ||||||
|  | Prettier formatting will be automatically verified by the `lint:prettier` script, included in the `test` script. | ||||||
|  | 
 | ||||||
|  | > [!NOTE] | ||||||
|  | > Most linting errors can be automatically fixed with `npm run lint:prettier:fix`. | ||||||
|  | 
 | ||||||
|  | ##### Other Lint Tools | ||||||
|  | 
 | ||||||
|  | Other tools are used for specific compatibility concerns, but are less likely to result in failures in common contributions. | ||||||
|  | Please follow the guidance of these tools if failures are encountered. | ||||||
|  | 
 | ||||||
|  | #### Tests | ||||||
|  | 
 | ||||||
|  | > [!NOTE] | ||||||
|  | > Before pushing your code changes make sure all **tests pass** and the unit test **coverage is 100%**: | ||||||
| 
 | 
 | ||||||
| All the [semantic-release](https://github.com/semantic-release) repositories use [AVA](https://github.com/avajs/ava) for writing and running tests. | All the [semantic-release](https://github.com/semantic-release) repositories use [AVA](https://github.com/avajs/ava) for writing and running tests. | ||||||
| 
 | 
 | ||||||
| Before pushing your code changes make sure all **tests pass** and the **coverage is 100%**: | During development, you can: | ||||||
| 
 |  | ||||||
| ```bash |  | ||||||
| $ npm run test |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| **Tips:** During development you can: |  | ||||||
| 
 | 
 | ||||||
| - run only a subset of test files with `ava <glob>`, for example `ava test/mytestfile.test.js` | - run only a subset of test files with `ava <glob>`, for example `ava test/mytestfile.test.js` | ||||||
| - run in watch mode with `ava -w` to automatically run a test file when you modify it | - run in watch mode with `ava -w` to automatically run a test file when you modify it | ||||||
| - run only the test you are working on by adding [`.only` to the test definition](https://github.com/avajs/ava#running-specific-tests) | - run only the test you are working on by adding [`.only` to the test definition](https://github.com/avajs/ava#running-specific-tests) | ||||||
| 
 | 
 | ||||||
|  | ##### Unit Tests | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | $ npm run test:unit | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ##### Integration Tests | ||||||
|  | 
 | ||||||
|  | > [!IMPORTANT] | ||||||
|  | > Running the integration test requires you to install [Docker](https://docs.docker.com/engine/installation) on your machine. | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | $ npm run test:integration | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
| ### Commits | ### Commits | ||||||
| 
 | 
 | ||||||
| [//]: # "TODO: these docs are already out of date. i'd value cleaning up the commitizen support, but w/o a special script" | [//]: # "TODO: these docs are already out of date. i'd value cleaning up the commitizen support, but w/o a special script" | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user