diff --git a/dev-setup.md b/dev-setup.md deleted file mode 100644 index 742be2bcaa..0000000000 --- a/dev-setup.md +++ /dev/null @@ -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` diff --git a/docs/docs/developer/database-migrations.md b/docs/docs/developer/database-migrations.md new file mode 100644 index 0000000000..5b69c3ec3d --- /dev/null +++ b/docs/docs/developer/database-migrations.md @@ -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/ +``` + +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. diff --git a/docs/docs/developer/open-api.md b/docs/docs/developer/open-api.md index 5d38272959..0fdd5551f1 100644 --- a/docs/docs/developer/open-api.md +++ b/docs/docs/developer/open-api.md @@ -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) +::: diff --git a/docs/docs/developer/contributing.md b/docs/docs/developer/pr-checklist.md similarity index 61% rename from docs/docs/developer/contributing.md rename to docs/docs/developer/pr-checklist.md index 11cdedf256..8eab7da42e 100644 --- a/docs/docs/developer/contributing.md +++ b/docs/docs/developer/pr-checklist.md @@ -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. diff --git a/docs/docs/developer/setup.md b/docs/docs/developer/setup.md index bbd2a75980..59e4177504 100644 --- a/docs/docs/developer/setup.md +++ b/docs/docs/developer/setup.md @@ -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/ -``` - -3. Check if the migration file makes sense. -4. Move the migration file to folder `server/libs/database/src/migrations` in your code editor. diff --git a/docs/vercel.json b/docs/vercel.json index b98d393c0d..f973f913d6 100644 --- a/docs/vercel.json +++ b/docs/vercel.json @@ -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" } ] } diff --git a/notes.md b/notes.md deleted file mode 100644 index 043dc05993..0000000000 --- a/notes.md +++ /dev/null @@ -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