From fed2503782a6ac6beb0207017bdac2d08e8a2df1 Mon Sep 17 00:00:00 2001 From: Brooooooklyn Date: Mon, 29 Apr 2024 02:14:20 +0000 Subject: [PATCH] refactor(server): rename @affine/storage to @affine/server-native (#6682) - Close https://github.com/toeverything/AFFiNE/issues/6680 --- .devcontainer/build.sh | 4 +- .github/labeler.yml | 4 +- .github/workflows/build-server-image.yml | 38 +++++++++---------- .github/workflows/build-test.yml | 26 ++++++------- .prettierignore | 2 +- Cargo.lock | 2 +- Cargo.toml | 2 +- docs/BUILDING.md | 2 +- docs/developing-server.md | 2 +- package.json | 2 +- .../backend/{storage => native}/Cargo.toml | 2 +- .../__tests__/storage.spec.js | 0 packages/backend/{storage => native}/build.rs | 0 .../backend/{storage => native}/index.d.ts | 0 packages/backend/{storage => native}/index.js | 0 .../backend/{storage => native}/package.json | 11 ++---- .../backend/{storage => native}/project.json | 6 +-- .../{storage => native}/src/hashcash.rs | 0 .../backend/{storage => native}/src/lib.rs | 0 .../backend/{storage => native}/tsconfig.json | 0 packages/backend/server/README.md | 2 +- packages/backend/server/package.json | 2 +- .../server/src/fundamentals/storage/native.ts | 18 ++++----- packages/backend/server/tsconfig.json | 2 +- tsconfig.json | 2 +- yarn.lock | 26 ++++++------- 26 files changed, 76 insertions(+), 79 deletions(-) rename packages/backend/{storage => native}/Cargo.toml (93%) rename packages/backend/{storage => native}/__tests__/storage.spec.js (100%) rename packages/backend/{storage => native}/build.rs (100%) rename packages/backend/{storage => native}/index.d.ts (100%) rename packages/backend/{storage => native}/index.js (100%) rename packages/backend/{storage => native}/package.json (77%) rename packages/backend/{storage => native}/project.json (81%) rename packages/backend/{storage => native}/src/hashcash.rs (100%) rename packages/backend/{storage => native}/src/lib.rs (100%) rename packages/backend/{storage => native}/tsconfig.json (100%) diff --git a/.devcontainer/build.sh b/.devcontainer/build.sh index 5095dd3ce2..d58c4f457f 100644 --- a/.devcontainer/build.sh +++ b/.devcontainer/build.sh @@ -9,10 +9,10 @@ corepack prepare yarn@stable --activate yarn install # Build Server Dependencies -yarn workspace @affine/storage build +yarn workspace @affine/server-native build # Create database yarn workspace @affine/server prisma db push # Create user username: affine, password: affine -echo "INSERT INTO \"users\"(\"id\",\"name\",\"email\",\"email_verified\",\"created_at\",\"password\") VALUES('99f3ad04-7c9b-441e-a6db-79f73aa64db9','affine','affine@affine.pro','2024-02-26 15:54:16.974','2024-02-26 15:54:16.974+00','\$argon2id\$v=19\$m=19456,t=2,p=1\$esDS3QCHRH0Kmeh87YPm5Q\$9S+jf+xzw2Hicj6nkWltvaaaXX3dQIxAFwCfFa9o38A');" | yarn workspace @affine/server prisma db execute --stdin \ No newline at end of file +echo "INSERT INTO \"users\"(\"id\",\"name\",\"email\",\"email_verified\",\"created_at\",\"password\") VALUES('99f3ad04-7c9b-441e-a6db-79f73aa64db9','affine','affine@affine.pro','2024-02-26 15:54:16.974','2024-02-26 15:54:16.974+00','\$argon2id\$v=19\$m=19456,t=2,p=1\$esDS3QCHRH0Kmeh87YPm5Q\$9S+jf+xzw2Hicj6nkWltvaaaXX3dQIxAFwCfFa9o38A');" | yarn workspace @affine/server prisma db execute --stdin diff --git a/.github/labeler.yml b/.github/labeler.yml index 84575c4288..dde4567c7e 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -44,10 +44,10 @@ mod:component: - any-glob-to-any-file: - 'packages/frontend/component/**/*' -mod:storage: +mod:server-native: - changed-files: - any-glob-to-any-file: - - 'packages/backend/storage/**/*' + - 'packages/backend/native/**/*' mod:native: - changed-files: diff --git a/.github/workflows/build-server-image.yml b/.github/workflows/build-server-image.yml index 82f5272767..624d330d97 100644 --- a/.github/workflows/build-server-image.yml +++ b/.github/workflows/build-server-image.yml @@ -66,18 +66,18 @@ jobs: path: ./packages/frontend/web/dist if-no-files-found: error - build-storage: - name: Build Storage - ${{ matrix.targets.name }} + build-server-native: + name: Build Server native - ${{ matrix.targets.name }} runs-on: ubuntu-latest strategy: matrix: targets: - name: x86_64-unknown-linux-gnu - file: storage.node + file: server-native.node - name: aarch64-unknown-linux-gnu - file: storage.arm64.node + file: server-native.arm64.node - name: armv7-unknown-linux-gnueabihf - file: storage.armv7.node + file: server-native.armv7.node steps: - uses: actions/checkout@v4 @@ -88,18 +88,18 @@ jobs: uses: ./.github/actions/setup-node with: electron-install: false - extra-flags: workspaces focus @affine/storage + extra-flags: workspaces focus @affine/server-native - name: Build Rust uses: ./.github/actions/build-rust with: target: ${{ matrix.targets.name }} - package: '@affine/storage' + package: '@affine/server-native' nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} - name: Upload ${{ matrix.targets.file }} uses: actions/upload-artifact@v4 with: name: ${{ matrix.targets.file }} - path: ./packages/backend/storage/storage.node + path: ./packages/backend/native/server-native.node if-no-files-found: error build-docker: @@ -108,7 +108,7 @@ jobs: needs: - build-server - build-web-selfhost - - build-storage + - build-server-native steps: - uses: actions/checkout@v4 - name: Download server dist @@ -116,25 +116,25 @@ jobs: with: name: server-dist path: ./packages/backend/server/dist - - name: Download storage.node + - name: Download server-native.node uses: actions/download-artifact@v4 with: - name: storage.node + name: server-native.node path: ./packages/backend/server - - name: Download storage.node arm64 + - name: Download server-native.node arm64 uses: actions/download-artifact@v4 with: - name: storage.arm64.node - path: ./packages/backend/storage - - name: Download storage.node arm64 + name: server-native.arm64.node + path: ./packages/backend/native + - name: Download server-native.node arm64 uses: actions/download-artifact@v4 with: - name: storage.armv7.node + name: server-native.armv7.node path: . - - name: move storage files + - name: move server-native files run: | - mv ./packages/backend/storage/storage.node ./packages/backend/server/storage.arm64.node - mv storage.node ./packages/backend/server/storage.armv7.node + mv ./packages/backend/native/server-native.node ./packages/backend/server/server-native.arm64.node + mv server-native.node ./packages/backend/server/server-native.armv7.node - name: Setup env run: | echo "GIT_SHORT_HASH=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV" diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index c16ea21fa5..25fb879606 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -241,8 +241,8 @@ jobs: path: ./packages/frontend/native/${{ steps.filename.outputs.filename }} if-no-files-found: error - build-storage: - name: Build Storage + build-server-native: + name: Build Server native runs-on: ubuntu-latest env: CARGO_PROFILE_RELEASE_DEBUG: '1' @@ -251,19 +251,19 @@ jobs: - name: Setup Node.js uses: ./.github/actions/setup-node with: - extra-flags: workspaces focus @affine/storage + extra-flags: workspaces focus @affine/server-native electron-install: false - name: Build Rust uses: ./.github/actions/build-rust with: target: 'x86_64-unknown-linux-gnu' - package: '@affine/storage' + package: '@affine/server-native' nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} - - name: Upload storage.node + - name: Upload server-native.node uses: actions/upload-artifact@v4 with: - name: storage.node - path: ./packages/backend/storage/storage.node + name: server-native.node + path: ./packages/backend/native/server-native.node if-no-files-found: error build-web: @@ -294,7 +294,7 @@ jobs: server-test: name: Server Test runs-on: ubuntu-latest - needs: build-storage + needs: build-server-native env: NODE_ENV: test DISTRIBUTION: browser @@ -324,10 +324,10 @@ jobs: electron-install: false full-cache: true - - name: Download storage.node + - name: Download server-native.node uses: actions/download-artifact@v4 with: - name: storage.node + name: server-native.node path: ./packages/backend/server - name: Initialize database @@ -383,7 +383,7 @@ jobs: yarn workspace @affine/electron build:dev xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn workspace @affine-test/affine-desktop-cloud e2e needs: - - build-storage + - build-server-native - build-native services: postgres: @@ -411,10 +411,10 @@ jobs: playwright-install: true hard-link-nm: false - - name: Download storage.node + - name: Download server-native.node uses: actions/download-artifact@v4 with: - name: storage.node + name: server-native.node path: ./packages/backend/server - name: Download affine.linux-x64-gnu.node diff --git a/.prettierignore b/.prettierignore index d119d0faaa..05a33a3618 100644 --- a/.prettierignore +++ b/.prettierignore @@ -21,6 +21,6 @@ packages/frontend/templates/onboarding # auto-generated by NAPI-RS # fixme(@joooye34): need script to check and generate ignore list here -packages/backend/storage/index.d.ts +packages/backend/native/index.d.ts packages/frontend/native/index.d.ts packages/frontend/native/index.js diff --git a/Cargo.lock b/Cargo.lock index c1451a34f9..3a65d52302 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -45,7 +45,7 @@ name = "affine_schema" version = "0.0.0" [[package]] -name = "affine_storage" +name = "affine_server_native" version = "1.0.0" dependencies = [ "chrono", diff --git a/Cargo.toml b/Cargo.toml index b8878b9ee6..404cae872a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ resolver = "2" members = [ "./packages/frontend/native", "./packages/frontend/native/schema", - "./packages/backend/storage", + "./packages/backend/native", ] [profile.dev.package.sqlx-macros] diff --git a/docs/BUILDING.md b/docs/BUILDING.md index b28b8f3954..b4ce786671 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -93,7 +93,7 @@ yarn workspace @affine/native build ### Build Server Dependencies ```sh -yarn workspace @affine/storage build +yarn workspace @affine/server-native build ``` ## Testing diff --git a/docs/developing-server.md b/docs/developing-server.md index ad3c364a8c..7921f75dbb 100644 --- a/docs/developing-server.md +++ b/docs/developing-server.md @@ -81,7 +81,7 @@ yarn workspace @affine/server prisma studio ``` # build native -yarn workspace @affine/storage build +yarn workspace @affine/server-native build yarn workspace @affine/native build ``` diff --git a/package.json b/package.json index b98cd870fb..f6b216a04a 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "dev:electron": "yarn workspace @affine/electron dev", "build": "yarn nx build @affine/web", "build:electron": "yarn nx build @affine/electron", - "build:storage": "yarn nx run-many -t build -p @affine/storage", + "build:server-native": "yarn nx run-many -t build -p @affine/server-native", "start:web-static": "yarn workspace @affine/web static-server", "serve:test-static": "yarn exec serve tests/fixtures --cors -p 8081", "lint:eslint": "cross-env NODE_OPTIONS=\"--max-old-space-size=8192\" eslint . --ext .js,mjs,.ts,.tsx --cache", diff --git a/packages/backend/storage/Cargo.toml b/packages/backend/native/Cargo.toml similarity index 93% rename from packages/backend/storage/Cargo.toml rename to packages/backend/native/Cargo.toml index ff57257043..2c2fe645f8 100644 --- a/packages/backend/storage/Cargo.toml +++ b/packages/backend/native/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "affine_storage" +name = "affine_server_native" version = "1.0.0" edition = "2021" diff --git a/packages/backend/storage/__tests__/storage.spec.js b/packages/backend/native/__tests__/storage.spec.js similarity index 100% rename from packages/backend/storage/__tests__/storage.spec.js rename to packages/backend/native/__tests__/storage.spec.js diff --git a/packages/backend/storage/build.rs b/packages/backend/native/build.rs similarity index 100% rename from packages/backend/storage/build.rs rename to packages/backend/native/build.rs diff --git a/packages/backend/storage/index.d.ts b/packages/backend/native/index.d.ts similarity index 100% rename from packages/backend/storage/index.d.ts rename to packages/backend/native/index.d.ts diff --git a/packages/backend/storage/index.js b/packages/backend/native/index.js similarity index 100% rename from packages/backend/storage/index.js rename to packages/backend/native/index.js diff --git a/packages/backend/storage/package.json b/packages/backend/native/package.json similarity index 77% rename from packages/backend/storage/package.json rename to packages/backend/native/package.json index 51a8ba9616..6589809f02 100644 --- a/packages/backend/storage/package.json +++ b/packages/backend/native/package.json @@ -1,5 +1,5 @@ { - "name": "@affine/storage", + "name": "@affine/server-native", "version": "0.14.0", "engines": { "node": ">= 10.16.0 < 11 || >= 11.8.0" @@ -10,13 +10,13 @@ "types": "index.d.ts", "exports": { ".": { - "require": "./storage.node", + "require": "./server-native.node", "import": "./index.js", "types": "./index.d.ts" } }, "napi": { - "binaryName": "storage", + "binaryName": "server-native", "targets": [ "aarch64-apple-darwin", "aarch64-unknown-linux-gnu", @@ -29,10 +29,7 @@ "scripts": { "test": "node --test ./__tests__/**/*.spec.js", "build": "napi build --release --strip --no-const-enum", - "build:debug": "napi build", - "prepublishOnly": "napi prepublish -t npm", - "artifacts": "napi artifacts", - "version": "napi version" + "build:debug": "napi build" }, "devDependencies": { "@napi-rs/cli": "3.0.0-alpha.46", diff --git a/packages/backend/storage/project.json b/packages/backend/native/project.json similarity index 81% rename from packages/backend/storage/project.json rename to packages/backend/native/project.json index b70c1dcd04..ee2d96ce26 100644 --- a/packages/backend/storage/project.json +++ b/packages/backend/native/project.json @@ -1,9 +1,9 @@ { - "name": "@affine/storage", + "name": "@affine/server-native", "$schema": "../../../node_modules/nx/schemas/project-schema.json", "projectType": "application", - "root": "packages/backend/storage", - "sourceRoot": "packages/backend/storage/src", + "root": "packages/backend/native", + "sourceRoot": "packages/backend/native/src", "targets": { "build": { "executor": "nx:run-script", diff --git a/packages/backend/storage/src/hashcash.rs b/packages/backend/native/src/hashcash.rs similarity index 100% rename from packages/backend/storage/src/hashcash.rs rename to packages/backend/native/src/hashcash.rs diff --git a/packages/backend/storage/src/lib.rs b/packages/backend/native/src/lib.rs similarity index 100% rename from packages/backend/storage/src/lib.rs rename to packages/backend/native/src/lib.rs diff --git a/packages/backend/storage/tsconfig.json b/packages/backend/native/tsconfig.json similarity index 100% rename from packages/backend/storage/tsconfig.json rename to packages/backend/native/tsconfig.json diff --git a/packages/backend/server/README.md b/packages/backend/server/README.md index 3dfb3f6dc4..e2aafea95b 100644 --- a/packages/backend/server/README.md +++ b/packages/backend/server/README.md @@ -11,7 +11,7 @@ yarn ### Build Native binding ```bash -yarn workspace @affine/storage build +yarn workspace @affine/server-native build ``` ### Run server diff --git a/packages/backend/server/package.json b/packages/backend/server/package.json index f48064a5ea..55da8dea15 100644 --- a/packages/backend/server/package.json +++ b/packages/backend/server/package.json @@ -96,7 +96,7 @@ }, "devDependencies": { "@affine-test/kit": "workspace:*", - "@affine/storage": "workspace:*", + "@affine/server-native": "workspace:*", "@napi-rs/image": "^1.9.1", "@nestjs/testing": "^10.3.7", "@types/cookie-parser": "^1.4.7", diff --git a/packages/backend/server/src/fundamentals/storage/native.ts b/packages/backend/server/src/fundamentals/storage/native.ts index 5fc6626c68..06b51f8959 100644 --- a/packages/backend/server/src/fundamentals/storage/native.ts +++ b/packages/backend/server/src/fundamentals/storage/native.ts @@ -1,19 +1,19 @@ import { createRequire } from 'node:module'; -let storageModule: typeof import('@affine/storage'); +let serverNativeModule: typeof import('@affine/server-native'); try { - storageModule = await import('@affine/storage'); + serverNativeModule = await import('@affine/server-native'); } catch { const require = createRequire(import.meta.url); - storageModule = + serverNativeModule = process.arch === 'arm64' - ? require('../../../storage.arm64.node') + ? require('../../../server-native.arm64.node') : process.arch === 'arm' - ? require('../../../storage.armv7.node') - : require('../../../storage.node'); + ? require('../../../server-native.armv7.node') + : require('../../../server-native.node'); } -export const mergeUpdatesInApplyWay = storageModule.mergeUpdatesInApplyWay; +export const mergeUpdatesInApplyWay = serverNativeModule.mergeUpdatesInApplyWay; export const verifyChallengeResponse = async ( response: any, @@ -21,10 +21,10 @@ export const verifyChallengeResponse = async ( resource: string ) => { if (typeof response !== 'string' || !response || !resource) return false; - return storageModule.verifyChallengeResponse(response, bits, resource); + return serverNativeModule.verifyChallengeResponse(response, bits, resource); }; export const mintChallengeResponse = async (resource: string, bits: number) => { if (!resource) return null; - return storageModule.mintChallengeResponse(resource, bits); + return serverNativeModule.mintChallengeResponse(resource, bits); }; diff --git a/packages/backend/server/tsconfig.json b/packages/backend/server/tsconfig.json index ec754fecdb..683dd2961e 100644 --- a/packages/backend/server/tsconfig.json +++ b/packages/backend/server/tsconfig.json @@ -23,7 +23,7 @@ "path": "./tsconfig.node.json" }, { - "path": "../storage/tsconfig.json" + "path": "../native/tsconfig.json" } ], "ts-node": { diff --git a/tsconfig.json b/tsconfig.json index 07d47f5bcf..09df53c249 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -69,7 +69,7 @@ "@toeverything/infra": ["./packages/common/infra/src"], "@affine/native": ["./packages/frontend/native/index.d.ts"], "@affine/native/*": ["./packages/frontend/native/*"], - "@affine/storage": ["./packages/backend/storage/index.d.ts"], + "@affine/server-native": ["./packages/backend/native/index.d.ts"], // Development only "@affine/electron/*": ["./packages/frontend/electron/src/*"] } diff --git a/yarn.lock b/yarn.lock index 82832d6c70..6cb4b6e6ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -644,12 +644,24 @@ __metadata: languageName: unknown linkType: soft +"@affine/server-native@workspace:*, @affine/server-native@workspace:packages/backend/native": + version: 0.0.0-use.local + resolution: "@affine/server-native@workspace:packages/backend/native" + dependencies: + "@napi-rs/cli": "npm:3.0.0-alpha.46" + lib0: "npm:^0.2.93" + nx: "npm:^18.2.4" + nx-cloud: "npm:^18.0.0" + yjs: "npm:^13.6.14" + languageName: unknown + linkType: soft + "@affine/server@workspace:packages/backend/server": version: 0.0.0-use.local resolution: "@affine/server@workspace:packages/backend/server" dependencies: "@affine-test/kit": "workspace:*" - "@affine/storage": "workspace:*" + "@affine/server-native": "workspace:*" "@apollo/server": "npm:^4.10.2" "@aws-sdk/client-s3": "npm:^3.552.0" "@google-cloud/opentelemetry-cloud-monitoring-exporter": "npm:^0.17.0" @@ -752,18 +764,6 @@ __metadata: languageName: unknown linkType: soft -"@affine/storage@workspace:*, @affine/storage@workspace:packages/backend/storage": - version: 0.0.0-use.local - resolution: "@affine/storage@workspace:packages/backend/storage" - dependencies: - "@napi-rs/cli": "npm:3.0.0-alpha.46" - lib0: "npm:^0.2.93" - nx: "npm:^18.2.4" - nx-cloud: "npm:^18.0.0" - yjs: "npm:^13.6.14" - languageName: unknown - linkType: soft - "@affine/templates@workspace:*, @affine/templates@workspace:packages/frontend/templates": version: 0.0.0-use.local resolution: "@affine/templates@workspace:packages/frontend/templates"