mirror of
https://github.com/immich-app/immich.git
synced 2025-01-04 02:46:47 +01:00
docs: update contributing pages (#2503)
This commit is contained in:
parent
3d426b55d3
commit
f984be8ea0
7 changed files with 37 additions and 84 deletions
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
|
# 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).
|
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 @@
|
||||||
---
|
# PR Checklist
|
||||||
sidebar_position: 3
|
|
||||||
---
|
|
||||||
|
|
||||||
# Contributing
|
|
||||||
|
|
||||||
Contributions are welcome!
|
|
||||||
|
|
||||||
## PR Checklist
|
|
||||||
|
|
||||||
When contributing code through a pull request, please check the following:
|
When contributing code through a pull request, please check the following:
|
||||||
|
|
||||||
### Web Checks
|
## Web Checks
|
||||||
|
|
||||||
- [ ] `npm run lint` (linting via ESLint)
|
- [ ] `npm run lint` (linting via ESLint)
|
||||||
- [ ] `npm run format` (formatting via Prettier)
|
- [ ] `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`
|
Run all web checks with `npm run check:all`
|
||||||
:::
|
:::
|
||||||
|
|
||||||
### Server Checks
|
## Server Checks
|
||||||
|
|
||||||
- [ ] `npm run lint` (linting via ESLint)
|
- [ ] `npm run lint` (linting via ESLint)
|
||||||
- [ ] `npm run format` (formatting via Prettier)
|
- [ ] `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`
|
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
|
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.
|
||||||
This can also be run via `make api` from the project root directory (not in the `server` folder)
|
|
||||||
:::
|
|
|
@ -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/password-login", "destination": "/docs/administration/password-login" },
|
||||||
{ "source": "/docs/features/server-commands", "destination": "/docs/administration/server-commands" },
|
{ "source": "/docs/features/server-commands", "destination": "/docs/administration/server-commands" },
|
||||||
{ "source": "/docs/features/storage-template", "destination": "/docs/administration/storage-template" },
|
{ "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" }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
6
notes.md
6
notes.md
|
@ -1,6 +0,0 @@
|
||||||
## Public sharing
|
|
||||||
|
|
||||||
### Albums
|
|
||||||
|
|
||||||
- [ ] Add asset to shared link when new asset is added to shared album
|
|
||||||
- [ ] Prevent public user to delete asset from shared album
|
|
Loading…
Reference in a new issue