mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	docs: update contributing pages (#2503)
This commit is contained in:
		
							
								
								
									
										32
									
								
								dev-setup.md
									
									
									
									
									
								
							
							
						
						
									
										32
									
								
								dev-setup.md
									
									
									
									
									
								
							| @@ -1,32 +0,0 @@ | ||||
| # Development Setup | ||||
|  | ||||
| ## Lint / format extensions | ||||
|  | ||||
| Setting these in the IDE give a better developer experience auto-formatting code on save and providing instant feedback on lint issues. | ||||
|  | ||||
| ### VSCode | ||||
| Install Prettier, ESLint and Svelte extensions. | ||||
|  | ||||
| in User `settings.json` (`cmd + shift + p` and search for Open User Settings JSON) add the following: | ||||
|  | ||||
| ```json | ||||
| { | ||||
|   "editor.formatOnSave": true, | ||||
|   "[javascript][typescript][css]": { | ||||
|     "editor.defaultFormatter": "esbenp.prettier-vscode", | ||||
|     "editor.tabSize": 2, | ||||
|     "editor.formatOnSave": true | ||||
|   }, | ||||
|   "[svelte]": { | ||||
|     "editor.defaultFormatter": "svelte.svelte-vscode", | ||||
|     "editor.tabSize": 2 | ||||
|   }, | ||||
|   "svelte.enable-ts-plugin": true, | ||||
|   "eslint.validate": ["javascript", "svelte"] | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ## Running tests / checks | ||||
|  | ||||
| In both server and web: | ||||
| `npm run check:all` | ||||
							
								
								
									
										14
									
								
								docs/docs/developer/database-migrations.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								docs/docs/developer/database-migrations.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| # Database Migrations | ||||
|  | ||||
| After making any changes in the `server/libs/database/src/entities`, a database migration need to run in order to register the changes in the database. Follow the steps below to create a new migration. | ||||
|  | ||||
| 1. Run the command | ||||
|  | ||||
| ```bash | ||||
| npm run typeorm:migrations:generate ./libs/infra/src/<migration-name> | ||||
| ``` | ||||
|  | ||||
| 2. Check if the migration file makes sense. | ||||
| 3. Move the migration file to folder `server/libs/database/src/migrations` in your code editor. | ||||
|  | ||||
| The server will automatically detect `*.ts` file changes and restart. Part of the server start-up process includes running any new migrations, so it will be applied immediately. | ||||
| @@ -1,7 +1,17 @@ | ||||
| --- | ||||
| sidebar_position: 5 | ||||
| --- | ||||
|  | ||||
| # Open API | ||||
|  | ||||
| Immich uses the [Open API](https://swagger.io/specification/) standard to generate API documentation. To view the published docs see [here](/docs/api). | ||||
|  | ||||
| ## Generator | ||||
|  | ||||
| OpenAPI is used to generate the client (Typescript, Dart) SDK. `openapi-generator-cli` can be installed [here](https://openapi-generator.tech/docs/installation/). When you add a new or modify an existing endpoint, you must run the command below to update the client SDK. | ||||
|  | ||||
| ```bash | ||||
| npm run api:generate # Run from the `server/` directory | ||||
| ``` | ||||
|  | ||||
| You can find the generated client SDK in the `web/src/api` for Typescript SDK and `mobile/openapi` for Dart SDK. | ||||
|  | ||||
| :::tip | ||||
| This can also be run via `make api` from the project root directory (not in the `server` folder) | ||||
| ::: | ||||
|   | ||||
| @@ -1,16 +1,8 @@ | ||||
| --- | ||||
| sidebar_position: 3 | ||||
| --- | ||||
| 
 | ||||
| # Contributing | ||||
| 
 | ||||
| Contributions are welcome! | ||||
| 
 | ||||
| ## PR Checklist | ||||
| # PR Checklist | ||||
| 
 | ||||
| When contributing code through a pull request, please check the following: | ||||
| 
 | ||||
| ### Web Checks | ||||
| ## Web Checks | ||||
| 
 | ||||
| - [ ] `npm run lint` (linting via ESLint) | ||||
| - [ ] `npm run format` (formatting via Prettier) | ||||
| @@ -21,7 +13,7 @@ When contributing code through a pull request, please check the following: | ||||
| Run all web checks with `npm run check:all` | ||||
| ::: | ||||
| 
 | ||||
| ### Server Checks | ||||
| ## Server Checks | ||||
| 
 | ||||
| - [ ] `npm run lint` (linting via ESLint) | ||||
| - [ ] `npm run format` (formatting via Prettier) | ||||
| @@ -32,12 +24,10 @@ Run all web checks with `npm run check:all` | ||||
| Run all server checks with `npm run check:all` | ||||
| ::: | ||||
| 
 | ||||
| ### Open API | ||||
| ## Open API | ||||
| 
 | ||||
| The Open API client libraries need to be regenerated whenever there are changes to the `immich-openapi-specs.json` file. | ||||
| The Open API client libraries need to be regenerated whenever there are changes to the `immich-openapi-specs.json` file. See [Open API](/docs/developer/open-api.md) for more details. | ||||
| 
 | ||||
| - [ ] `npm run api:generate` | ||||
| ## Database Migrations | ||||
| 
 | ||||
| :::tip | ||||
| This can also be run via `make api` from the project root directory (not in the `server` folder) | ||||
| ::: | ||||
| A database migration needs to be generated whenever there are changes to `server/libs/infra/src/entities`. See [Database Migration](/docs/developer/database-migrations.md) for more details. | ||||
| @@ -92,27 +92,3 @@ in User `settings.json` (`cmd + shift + p` and search for `Open User Settings JS | ||||
|   } | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ## OpenAPI generator | ||||
|  | ||||
| OpenAPI is used to generate the client (Typescript, Dart) SDK. `openapi-generator-cli` can be installed [here](https://openapi-generator.tech/docs/installation/). When you add a new or modify an existing endpoint, you must run the command below to update the client SDK. | ||||
|  | ||||
| ```bash | ||||
| npm run api:generate # Run from the `server` directory | ||||
| ``` | ||||
|  | ||||
| You can find the generated client SDK in the `web/src/api` for Typescript SDK and `mobile/openapi` for Dart SDK. | ||||
|  | ||||
| ## Database migrations | ||||
|  | ||||
| After making any changes in the `server/libs/database/src/entities`, a database migration need to run in order to register the changes in the database. Follow the steps below to create a new migration. | ||||
|  | ||||
| 1. Attached to the server container shell. | ||||
| 2. Run | ||||
|  | ||||
| ```bash | ||||
| npm run typeorm:migrations:generate ./libs/infra/src/<migration-name> | ||||
| ``` | ||||
|  | ||||
| 3. Check if the migration file makes sense. | ||||
| 4. Move the migration file to folder `server/libs/database/src/migrations` in your code editor. | ||||
|   | ||||
| @@ -22,6 +22,7 @@ | ||||
|     { "source": "/docs/features/password-login", "destination": "/docs/administration/password-login" }, | ||||
|     { "source": "/docs/features/server-commands", "destination": "/docs/administration/server-commands" }, | ||||
|     { "source": "/docs/features/storage-template", "destination": "/docs/administration/storage-template" }, | ||||
|     { "source": "/docs/features/user-management", "destination": "/docs/administration/user-management" } | ||||
|     { "source": "/docs/features/user-management", "destination": "/docs/administration/user-management" }, | ||||
|     { "source": "/docs/developer/contributing", "destination": "/docs/developer/pr-checklist" } | ||||
|   ] | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user