refactor(infra): directory structure (#4615)
This commit is contained in:
1 parent
814d552be8
commit
bed9310519
1150 files changed
+539
-584
No files matched your search
+3
-3
@@ -7,10 +7,10 @@ affine-out
|
|||||||
_next
|
_next
|
||||||
lib
|
lib
|
||||||
.eslintrc.js
|
.eslintrc.js
|
||||||
packages/i18n/src/i18n-generated.ts
|
|
||||||
e2e-dist-*
|
e2e-dist-*
|
||||||
static
|
static
|
||||||
web-static
|
web-static
|
||||||
public
|
public
|
||||||
packages/sdk/src/*.d.ts
|
packages/common/sdk/src/*.d.ts
|
||||||
packages/sdk/src/*.js
|
packages/common/sdk/src/*.js
|
||||||
|
packages/frontend/i18n/src/i18n-generated.ts
|
||||||
+21
-22
@@ -56,26 +56,25 @@ const createPattern = packageName => [
|
|||||||
];
|
];
|
||||||
|
|
||||||
const allPackages = [
|
const allPackages = [
|
||||||
'packages/cli',
|
'packages/backend/server',
|
||||||
'packages/component',
|
'packages/frontend/component',
|
||||||
'packages/debug',
|
'packages/frontend/web',
|
||||||
'packages/env',
|
'packages/frontend/electron',
|
||||||
'packages/graphql',
|
'packages/frontend/graphql',
|
||||||
'packages/hooks',
|
'packages/frontend/hooks',
|
||||||
'packages/i18n',
|
'packages/frontend/i18n',
|
||||||
'packages/native',
|
'packages/frontend/native',
|
||||||
'packages/infra',
|
'packages/frontend/templates',
|
||||||
'packages/sdk',
|
'packages/frontend/workspace',
|
||||||
'packages/templates',
|
'packages/common/debug',
|
||||||
'packages/theme',
|
'packages/common/env',
|
||||||
'packages/workspace',
|
'packages/common/infra',
|
||||||
'packages/y-indexeddb',
|
'packages/common/sdk',
|
||||||
'apps/web',
|
'packages/common/theme',
|
||||||
'apps/server',
|
'packages/common/y-indexeddb',
|
||||||
'apps/electron',
|
'packages/plugins/copilot',
|
||||||
'apps/storybook',
|
'tools/cli',
|
||||||
'plugins/copilot',
|
'tests/storybook',
|
||||||
'plugins/bookmark-block',
|
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -88,7 +87,7 @@ const config = {
|
|||||||
version: 'detect',
|
version: 'detect',
|
||||||
},
|
},
|
||||||
next: {
|
next: {
|
||||||
rootDir: 'apps/web',
|
rootDir: 'packages/frontend/core',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
extends: [
|
extends: [
|
||||||
@@ -223,7 +222,7 @@ const config = {
|
|||||||
},
|
},
|
||||||
overrides: [
|
overrides: [
|
||||||
{
|
{
|
||||||
files: 'apps/server/**/*.ts',
|
files: 'packages/backend/server/**/*.ts',
|
||||||
rules: {
|
rules: {
|
||||||
'@typescript-eslint/consistent-type-imports': 0,
|
'@typescript-eslint/consistent-type-imports': 0,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
FROM openresty/openresty:1.21.4.1-0-buster
|
FROM openresty/openresty:1.21.4.1-0-buster
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
COPY ./apps/core/dist ./dist
|
COPY ./packages/frontend/core/dist ./dist
|
||||||
COPY ./.github/deployment/front/nginx.conf /usr/local/openresty/nginx/conf/nginx.conf
|
COPY ./.github/deployment/front/nginx.conf /usr/local/openresty/nginx/conf/nginx.conf
|
||||||
COPY ./.github/deployment/front/affine.nginx.conf /etc/nginx/conf.d/affine.nginx.conf
|
COPY ./.github/deployment/front/affine.nginx.conf /etc/nginx/conf.d/affine.nginx.conf
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
FROM node:18-bookworm-slim
|
FROM node:18-bookworm-slim
|
||||||
|
|
||||||
COPY ./apps/server /app
|
COPY ./packages/backend/server /app
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
RUN apt-get update && \
|
RUN apt-get update && \
|
||||||
|
|||||||
+19
-24
@@ -1,7 +1,7 @@
|
|||||||
docs:
|
docs:
|
||||||
- 'docs/**/*'
|
- 'docs/**/*'
|
||||||
- '**/README.md'
|
- '**/README.md'
|
||||||
- 'packages/templates/**/*'
|
- 'packages/frontend/templates/**/*'
|
||||||
|
|
||||||
test:
|
test:
|
||||||
- 'tests/**/*'
|
- 'tests/**/*'
|
||||||
@@ -10,40 +10,37 @@ test:
|
|||||||
|
|
||||||
mod:dev:
|
mod:dev:
|
||||||
- 'scripts/**/*'
|
- 'scripts/**/*'
|
||||||
- 'packages/cli/**/*'
|
- 'tools/cli/**/*'
|
||||||
- 'packages/debug/**/*'
|
- 'packages/common/debug/**/*'
|
||||||
|
|
||||||
mod:plugin:
|
mod:plugin:
|
||||||
- 'plugins/**/*'
|
- 'packages/plugins/**/*'
|
||||||
|
|
||||||
plugin:bookmark-block:
|
|
||||||
- 'plugins/bookmark-block/**/*'
|
|
||||||
|
|
||||||
plugin:copilot:
|
plugin:copilot:
|
||||||
- 'plugins/copilot/**/*'
|
- 'packages/plugins/copilot/**/*'
|
||||||
|
|
||||||
mod:infra:
|
mod:infra:
|
||||||
- 'packages/infra/**/*'
|
- 'packages/common/infra/**/*'
|
||||||
|
|
||||||
mod:sdk:
|
mod:sdk:
|
||||||
- 'packages/sdk/**/*'
|
- 'packages/common/sdk/**/*'
|
||||||
|
|
||||||
mod:plugin-cli:
|
mod:plugin-cli:
|
||||||
- 'packages/plugin-cli/**/*'
|
- 'tools/plugin-cli/**/*'
|
||||||
|
|
||||||
mod:workspace: 'packages/workspace/**/*'
|
mod:workspace: 'packages/frontend/workspace/**/*'
|
||||||
|
|
||||||
mod:i18n: 'packages/i18n/**/*'
|
mod:i18n: 'packages/frontend/i18n/**/*'
|
||||||
|
|
||||||
mod:env: 'packages/env/**/*'
|
mod:env: 'packages/common/env/**/*'
|
||||||
|
|
||||||
mod:hooks: 'packages/hooks/**/*'
|
mod:hooks: 'packages/frontend/hooks/**/*'
|
||||||
|
|
||||||
mod:component: 'packages/component/**/*'
|
mod:component: 'packages/frontend/component/**/*'
|
||||||
|
|
||||||
mod:storage: 'packages/storage/**/*'
|
mod:storage: 'packages/backend/storage/**/*'
|
||||||
|
|
||||||
mod:native: 'packages/native/**/*'
|
mod:native: 'packages/frontend/native/**/*'
|
||||||
|
|
||||||
mod:store:
|
mod:store:
|
||||||
- '**/atoms/**/*'
|
- '**/atoms/**/*'
|
||||||
@@ -56,12 +53,10 @@ rust:
|
|||||||
- '**/rust-toolchain.toml'
|
- '**/rust-toolchain.toml'
|
||||||
- '**/rustfmt.toml'
|
- '**/rustfmt.toml'
|
||||||
|
|
||||||
package:y-indexeddb: 'packages/y-indexeddb/**/*'
|
package:y-indexeddb: 'packages/common/y-indexeddb/**/*'
|
||||||
|
|
||||||
app:core: 'apps/core/**/*'
|
app:core: 'packages/frontend/core/**/*'
|
||||||
|
|
||||||
app:electron: 'apps/electron/**/*'
|
app:electron: 'packages/frontend/electron/**/*'
|
||||||
|
|
||||||
app:server: 'apps/server/**/*'
|
app:server: 'packages/backend/server/**/*'
|
||||||
|
|
||||||
app:docs: 'apps/docs/**/*'
|
|
||||||
@@ -52,7 +52,7 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: core
|
name: core
|
||||||
path: ./apps/core/dist
|
path: ./packages/frontend/core/dist
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
build-native:
|
build-native:
|
||||||
@@ -72,7 +72,7 @@ jobs:
|
|||||||
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
|
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: yarn test
|
run: yarn test
|
||||||
working-directory: ./packages/native
|
working-directory: ./packages/frontend/native
|
||||||
|
|
||||||
desktop-test:
|
desktop-test:
|
||||||
name: Desktop Test
|
name: Desktop Test
|
||||||
@@ -137,7 +137,7 @@ jobs:
|
|||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: core
|
name: core
|
||||||
path: apps/electron/resources/web-static
|
path: packages/frontend/electron/resources/web-static
|
||||||
|
|
||||||
- name: Build Desktop Layers
|
- name: Build Desktop Layers
|
||||||
run: yarn workspace @affine/electron build
|
run: yarn workspace @affine/electron build
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: storage.node
|
name: storage.node
|
||||||
path: ./packages/storage/storage.node
|
path: ./packages/backend/storage/storage.node
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
server-test:
|
server-test:
|
||||||
@@ -117,7 +117,7 @@ jobs:
|
|||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: storage.node
|
name: storage.node
|
||||||
path: ./apps/server
|
path: ./packages/backend/server
|
||||||
|
|
||||||
- name: Run server tests
|
- name: Run server tests
|
||||||
run: yarn workspace @affine/server test:coverage
|
run: yarn workspace @affine/server test:coverage
|
||||||
@@ -129,7 +129,7 @@ jobs:
|
|||||||
uses: codecov/codecov-action@v3
|
uses: codecov/codecov-action@v3
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
files: ./apps/server/.coverage/lcov.info
|
files: ./packages/backend/server/.coverage/lcov.info
|
||||||
flags: server-test
|
flags: server-test
|
||||||
name: affine
|
name: affine
|
||||||
fail_ci_if_error: false
|
fail_ci_if_error: false
|
||||||
@@ -188,7 +188,7 @@ jobs:
|
|||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: storage.node
|
name: storage.node
|
||||||
path: ./apps/server
|
path: ./packages/backend/server
|
||||||
|
|
||||||
- name: Run playwright tests
|
- name: Run playwright tests
|
||||||
run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn workspace @affine-test/affine-cloud e2e --forbid-only
|
run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn workspace @affine-test/affine-cloud e2e --forbid-only
|
||||||
@@ -278,7 +278,7 @@ jobs:
|
|||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: storage.node
|
name: storage.node
|
||||||
path: ./apps/server
|
path: ./packages/backend/server
|
||||||
|
|
||||||
- name: Build Plugins
|
- name: Build Plugins
|
||||||
run: yarn run build:plugins
|
run: yarn run build:plugins
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: server-dist
|
name: server-dist
|
||||||
path: ./apps/server/dist
|
path: ./packages/backend/server/dist
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
build-core:
|
build-core:
|
||||||
name: Build @affine/core
|
name: Build @affine/core
|
||||||
@@ -62,7 +62,7 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: core
|
name: core
|
||||||
path: ./apps/core/dist
|
path: ./packages/frontend/core/dist
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
build-storage:
|
build-storage:
|
||||||
@@ -84,7 +84,7 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: storage.node
|
name: storage.node
|
||||||
path: ./packages/storage/storage.node
|
path: ./packages/backend/storage/storage.node
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
build-docker:
|
build-docker:
|
||||||
@@ -101,17 +101,17 @@ jobs:
|
|||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: core
|
name: core
|
||||||
path: ./apps/core/dist
|
path: ./packages/frontend/core/dist
|
||||||
- name: Download server dist
|
- name: Download server dist
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: server-dist
|
name: server-dist
|
||||||
path: ./apps/server/dist
|
path: ./packages/backend/server/dist
|
||||||
- name: Download storage.node
|
- name: Download storage.node
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: storage.node
|
name: storage.node
|
||||||
path: ./apps/server
|
path: ./packages/backend/server
|
||||||
- name: Setup env
|
- name: Setup env
|
||||||
run: |
|
run: |
|
||||||
echo "GIT_SHORT_HASH=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
|
echo "GIT_SHORT_HASH=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches: ['master']
|
branches: ['master']
|
||||||
paths:
|
paths:
|
||||||
- 'packages/i18n/**'
|
- 'packages/frontend/i18n/**'
|
||||||
- '.github/workflows/languages-sync.yml'
|
- '.github/workflows/languages-sync.yml'
|
||||||
- '!.github/actions/setup-node/action.yml'
|
- '!.github/actions/setup-node/action.yml'
|
||||||
pull_request_target:
|
pull_request_target:
|
||||||
branches: ['master']
|
branches: ['master']
|
||||||
paths:
|
paths:
|
||||||
- 'packages/i18n/**'
|
- 'packages/frontend/i18n/**'
|
||||||
- '.github/workflows/languages-sync.yml'
|
- '.github/workflows/languages-sync.yml'
|
||||||
- '!.github/actions/setup-node/action.yml'
|
- '!.github/actions/setup-node/action.yml'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ jobs:
|
|||||||
- name: Replace Version
|
- name: Replace Version
|
||||||
run: ./scripts/set-version.sh ${{ needs.set-build-version.outputs.version }}
|
run: ./scripts/set-version.sh ${{ needs.set-build-version.outputs.version }}
|
||||||
- name: generate-assets
|
- name: generate-assets
|
||||||
working-directory: apps/electron
|
working-directory: packages/frontend/electron
|
||||||
run: yarn generate-assets
|
run: yarn generate-assets
|
||||||
env:
|
env:
|
||||||
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
|
||||||
@@ -80,7 +80,7 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: core
|
name: core
|
||||||
path: apps/electron/resources/web-static
|
path: packages/frontend/electron/resources/web-static
|
||||||
|
|
||||||
make-distribution:
|
make-distribution:
|
||||||
environment: production
|
environment: production
|
||||||
@@ -133,7 +133,7 @@ jobs:
|
|||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: core
|
name: core
|
||||||
path: apps/electron/resources/web-static
|
path: packages/frontend/electron/resources/web-static
|
||||||
|
|
||||||
- name: Build Plugins
|
- name: Build Plugins
|
||||||
run: yarn run build:plugins
|
run: yarn run build:plugins
|
||||||
@@ -155,23 +155,23 @@ jobs:
|
|||||||
if: ${{ matrix.spec.platform == 'darwin' }}
|
if: ${{ matrix.spec.platform == 'darwin' }}
|
||||||
run: |
|
run: |
|
||||||
mkdir -p builds
|
mkdir -p builds
|
||||||
mv apps/electron/out/*/make/*.dmg ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.dmg
|
mv packages/frontend/electron/out/*/make/*.dmg ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.dmg
|
||||||
mv apps/electron/out/*/make/zip/darwin/${{ matrix.spec.arch }}/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.zip
|
mv packages/frontend/electron/out/*/make/zip/darwin/${{ matrix.spec.arch }}/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.zip
|
||||||
- name: Save artifacts (windows)
|
- name: Save artifacts (windows)
|
||||||
if: ${{ matrix.spec.platform == 'win32' }}
|
if: ${{ matrix.spec.platform == 'win32' }}
|
||||||
run: |
|
run: |
|
||||||
mkdir -p builds
|
mkdir -p builds
|
||||||
mv apps/electron/out/*/make/zip/win32/x64/AFFiNE*-win32-x64-*.zip ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.zip
|
mv packages/frontend/electron/out/*/make/zip/win32/x64/AFFiNE*-win32-x64-*.zip ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.zip
|
||||||
mv apps/electron/out/*/make/squirrel.windows/x64/*.exe ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.exe
|
mv packages/frontend/electron/out/*/make/squirrel.windows/x64/*.exe ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.exe
|
||||||
mv apps/electron/out/*/make/squirrel.windows/x64/*.msi ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.msi
|
mv packages/frontend/electron/out/*/make/squirrel.windows/x64/*.msi ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.msi
|
||||||
mv apps/electron/out/*/make/squirrel.windows/x64/*.nupkg ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.nupkg
|
mv packages/frontend/electron/out/*/make/squirrel.windows/x64/*.nupkg ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.nupkg
|
||||||
|
|
||||||
- name: Save artifacts (linux)
|
- name: Save artifacts (linux)
|
||||||
if: ${{ matrix.spec.platform == 'linux' }}
|
if: ${{ matrix.spec.platform == 'linux' }}
|
||||||
run: |
|
run: |
|
||||||
mkdir -p builds
|
mkdir -p builds
|
||||||
mv apps/electron/out/*/make/zip/linux/x64/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.zip
|
mv packages/frontend/electron/out/*/make/zip/linux/x64/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.zip
|
||||||
mv apps/electron/out/*/make/AppImage/x64/*.AppImage ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.AppImage
|
mv packages/frontend/electron/out/*/make/AppImage/x64/*.AppImage ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.AppImage
|
||||||
|
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
@@ -213,7 +213,7 @@ jobs:
|
|||||||
node-version: 18
|
node-version: 18
|
||||||
- name: Generate Release yml
|
- name: Generate Release yml
|
||||||
run: |
|
run: |
|
||||||
node ./apps/electron/scripts/generate-yml.js
|
node ./packages/frontend/electron/scripts/generate-yml.js
|
||||||
env:
|
env:
|
||||||
RELEASE_VERSION: ${{ needs.set-build-version.outputs.version }}
|
RELEASE_VERSION: ${{ needs.set-build-version.outputs.version }}
|
||||||
- name: Create Release Draft
|
- name: Create Release Draft
|
||||||
|
|||||||
@@ -14,9 +14,8 @@ on:
|
|||||||
paths-ignore:
|
paths-ignore:
|
||||||
- README.md
|
- README.md
|
||||||
- .github/**
|
- .github/**
|
||||||
- apps/server
|
- packages/backend/server
|
||||||
- apps/docs
|
- packages/frontend/electron
|
||||||
- apps/electron
|
|
||||||
- '!.github/workflows/publish-storybook.yml'
|
- '!.github/workflows/publish-storybook.yml'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
@@ -38,7 +37,7 @@ jobs:
|
|||||||
run: yarn run build:plugins
|
run: yarn run build:plugins
|
||||||
- uses: chromaui/action-next@v1
|
- uses: chromaui/action-next@v1
|
||||||
with:
|
with:
|
||||||
workingDir: apps/storybook
|
workingDir: tests/storybook
|
||||||
buildScriptName: build
|
buildScriptName: build
|
||||||
exitOnceUploaded: true
|
exitOnceUploaded: true
|
||||||
onlyChanged: false
|
onlyChanged: false
|
||||||
|
|||||||
@@ -54,12 +54,12 @@ jobs:
|
|||||||
if: ${{ github.ref_type == 'tag' }}
|
if: ${{ github.ref_type == 'tag' }}
|
||||||
run: |
|
run: |
|
||||||
TAG_VERSION=${GITHUB_REF#refs/tags/v}
|
TAG_VERSION=${GITHUB_REF#refs/tags/v}
|
||||||
PACKAGE_VERSION=$(node -p "require('./apps/electron/package.json').version")
|
PACKAGE_VERSION=$(node -p "require('./packages/frontend/electron/package.json').version")
|
||||||
if [ "$TAG_VERSION" != "$PACKAGE_VERSION" ]; then
|
if [ "$TAG_VERSION" != "$PACKAGE_VERSION" ]; then
|
||||||
echo "Tag version ($TAG_VERSION) does not match package.json version ($PACKAGE_VERSION)"
|
echo "Tag version ($TAG_VERSION) does not match package.json version ($PACKAGE_VERSION)"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo "RELEASE_VERSION=$(node -p "require('./apps/electron/package.json').version")" >> $GITHUB_OUTPUT
|
echo "RELEASE_VERSION=$(node -p "require('./packages/frontend/electron/package.json').version")" >> $GITHUB_OUTPUT
|
||||||
- name: generate-assets
|
- name: generate-assets
|
||||||
run: yarn workspace @affine/electron generate-assets
|
run: yarn workspace @affine/electron generate-assets
|
||||||
env:
|
env:
|
||||||
@@ -73,7 +73,7 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: core
|
name: core
|
||||||
path: apps/electron/resources/web-static
|
path: packages/frontend/electron/resources/web-static
|
||||||
|
|
||||||
make-distribution:
|
make-distribution:
|
||||||
environment: production
|
environment: production
|
||||||
@@ -123,7 +123,7 @@ jobs:
|
|||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: core
|
name: core
|
||||||
path: apps/electron/resources/web-static
|
path: packages/frontend/electron/resources/web-static
|
||||||
|
|
||||||
- name: Build Desktop Layers
|
- name: Build Desktop Layers
|
||||||
run: yarn workspace @affine/electron build
|
run: yarn workspace @affine/electron build
|
||||||
@@ -146,14 +146,14 @@ jobs:
|
|||||||
if: ${{ matrix.spec.platform == 'darwin' }}
|
if: ${{ matrix.spec.platform == 'darwin' }}
|
||||||
run: |
|
run: |
|
||||||
mkdir -p builds
|
mkdir -p builds
|
||||||
mv apps/electron/out/*/make/*.dmg ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.dmg
|
mv packages/frontend/electron/out/*/make/*.dmg ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.dmg
|
||||||
mv apps/electron/out/*/make/zip/darwin/${{ matrix.spec.arch }}/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.zip
|
mv packages/frontend/electron/out/*/make/zip/darwin/${{ matrix.spec.arch }}/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.zip
|
||||||
- name: Save artifacts (linux)
|
- name: Save artifacts (linux)
|
||||||
if: ${{ matrix.spec.platform == 'linux' }}
|
if: ${{ matrix.spec.platform == 'linux' }}
|
||||||
run: |
|
run: |
|
||||||
mkdir -p builds
|
mkdir -p builds
|
||||||
mv apps/electron/out/*/make/zip/linux/x64/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.zip
|
mv packages/frontend/electron/out/*/make/zip/linux/x64/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.zip
|
||||||
mv apps/electron/out/*/make/AppImage/x64/*.AppImage ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.AppImage
|
mv packages/frontend/electron/out/*/make/AppImage/x64/*.AppImage ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.AppImage
|
||||||
|
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
@@ -200,7 +200,7 @@ jobs:
|
|||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: core
|
name: core
|
||||||
path: apps/electron/resources/web-static
|
path: packages/frontend/electron/resources/web-static
|
||||||
|
|
||||||
- name: Build Plugins
|
- name: Build Plugins
|
||||||
run: yarn run build:plugins
|
run: yarn run build:plugins
|
||||||
@@ -218,12 +218,12 @@ jobs:
|
|||||||
- name: get all files to be signed
|
- name: get all files to be signed
|
||||||
id: get_files_to_be_signed
|
id: get_files_to_be_signed
|
||||||
run: |
|
run: |
|
||||||
Set-Variable -Name FILES_TO_BE_SIGNED -Value ((Get-ChildItem -Path apps/electron/out -Recurse -File | Where-Object { $_.Extension -in @(".exe", ".node", ".dll", ".msi") } | ForEach-Object { '"' + $_.FullName.Replace((Get-Location).Path + '\apps\electron\out\', '') + '"' }) -join ' ')
|
Set-Variable -Name FILES_TO_BE_SIGNED -Value ((Get-ChildItem -Path packages/frontend/electron/out -Recurse -File | Where-Object { $_.Extension -in @(".exe", ".node", ".dll", ".msi") } | ForEach-Object { '"' + $_.FullName.Replace((Get-Location).Path + '\apps\electron\out\', '') + '"' }) -join ' ')
|
||||||
"FILES_TO_BE_SIGNED=$FILES_TO_BE_SIGNED" >> $env:GITHUB_OUTPUT
|
"FILES_TO_BE_SIGNED=$FILES_TO_BE_SIGNED" >> $env:GITHUB_OUTPUT
|
||||||
echo $FILES_TO_BE_SIGNED
|
echo $FILES_TO_BE_SIGNED
|
||||||
|
|
||||||
- name: Zip artifacts for faster upload
|
- name: Zip artifacts for faster upload
|
||||||
run: Compress-Archive -CompressionLevel Fastest -Path apps/electron/out/* -DestinationPath archive.zip
|
run: Compress-Archive -CompressionLevel Fastest -Path packages/frontend/electron/out/* -DestinationPath archive.zip
|
||||||
|
|
||||||
- name: Save packaged artifacts for signing
|
- name: Save packaged artifacts for signing
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
@@ -266,18 +266,18 @@ jobs:
|
|||||||
name: signed-packaged-${{ matrix.spec.platform }}-${{ matrix.spec.arch }}
|
name: signed-packaged-${{ matrix.spec.platform }}-${{ matrix.spec.arch }}
|
||||||
path: .
|
path: .
|
||||||
- name: unzip file
|
- name: unzip file
|
||||||
run: Expand-Archive -Path signed.zip -DestinationPath apps/electron/out
|
run: Expand-Archive -Path signed.zip -DestinationPath packages/frontend/electron/out
|
||||||
|
|
||||||
- name: Make squirrel.windows installer
|
- name: Make squirrel.windows installer
|
||||||
run: yarn workspace @affine/electron make-squirrel --platform=${{ matrix.spec.platform }} --arch=${{ matrix.spec.arch }}
|
run: yarn workspace @affine/electron make-squirrel --platform=${{ matrix.spec.platform }} --arch=${{ matrix.spec.arch }}
|
||||||
|
|
||||||
- name: Zip artifacts for faster upload
|
- name: Zip artifacts for faster upload
|
||||||
run: Compress-Archive -CompressionLevel Fastest -Path apps/electron/out/${{ env.BUILD_TYPE }}/make/* -DestinationPath archive.zip
|
run: Compress-Archive -CompressionLevel Fastest -Path packages/frontend/electron/out/${{ env.BUILD_TYPE }}/make/* -DestinationPath archive.zip
|
||||||
|
|
||||||
- name: get all files to be signed
|
- name: get all files to be signed
|
||||||
id: get_files_to_be_signed
|
id: get_files_to_be_signed
|
||||||
run: |
|
run: |
|
||||||
Set-Variable -Name FILES_TO_BE_SIGNED -Value ((Get-ChildItem -Path apps/electron/out/${{ env.BUILD_TYPE }}/make -Recurse -File | Where-Object { $_.Extension -in @(".exe", ".node", ".dll", ".msi") } | ForEach-Object { '"' + $_.FullName.Replace((Get-Location).Path + '\apps\electron\out\${{ env.BUILD_TYPE }}\make\', '') + '"' }) -join ' ')
|
Set-Variable -Name FILES_TO_BE_SIGNED -Value ((Get-ChildItem -Path packages/frontend/electron/out/${{ env.BUILD_TYPE }}/make -Recurse -File | Where-Object { $_.Extension -in @(".exe", ".node", ".dll", ".msi") } | ForEach-Object { '"' + $_.FullName.Replace((Get-Location).Path + '\apps\electron\out\${{ env.BUILD_TYPE }}\make\', '') + '"' }) -join ' ')
|
||||||
"FILES_TO_BE_SIGNED=$FILES_TO_BE_SIGNED" >> $env:GITHUB_OUTPUT
|
"FILES_TO_BE_SIGNED=$FILES_TO_BE_SIGNED" >> $env:GITHUB_OUTPUT
|
||||||
echo $FILES_TO_BE_SIGNED
|
echo $FILES_TO_BE_SIGNED
|
||||||
|
|
||||||
@@ -314,14 +314,14 @@ jobs:
|
|||||||
name: signed-installer-${{ matrix.spec.platform }}-${{ matrix.spec.arch }}
|
name: signed-installer-${{ matrix.spec.platform }}-${{ matrix.spec.arch }}
|
||||||
path: .
|
path: .
|
||||||
- name: unzip file
|
- name: unzip file
|
||||||
run: Expand-Archive -Path signed.zip -DestinationPath apps/electron/out/${{ env.BUILD_TYPE }}/make
|
run: Expand-Archive -Path signed.zip -DestinationPath packages/frontend/electron/out/${{ env.BUILD_TYPE }}/make
|
||||||
|
|
||||||
- name: Save artifacts
|
- name: Save artifacts
|
||||||
run: |
|
run: |
|
||||||
mkdir -p builds
|
mkdir -p builds
|
||||||
mv apps/electron/out/*/make/zip/win32/x64/AFFiNE*-win32-x64-*.zip ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.zip
|
mv packages/frontend/electron/out/*/make/zip/win32/x64/AFFiNE*-win32-x64-*.zip ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.zip
|
||||||
mv apps/electron/out/*/make/squirrel.windows/x64/*.exe ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.exe
|
mv packages/frontend/electron/out/*/make/squirrel.windows/x64/*.exe ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.exe
|
||||||
mv apps/electron/out/*/make/squirrel.windows/x64/*.msi ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.msi
|
mv packages/frontend/electron/out/*/make/squirrel.windows/x64/*.msi ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.msi
|
||||||
|
|
||||||
- name: Upload Artifact
|
- name: Upload Artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
@@ -366,7 +366,7 @@ jobs:
|
|||||||
node-version: 18
|
node-version: 18
|
||||||
- name: Generate Release yml
|
- name: Generate Release yml
|
||||||
run: |
|
run: |
|
||||||
node ./apps/electron/scripts/generate-yml.js
|
node ./packages/frontend/electron/scripts/generate-yml.js
|
||||||
env:
|
env:
|
||||||
RELEASE_VERSION: ${{ github.event.inputs.version || needs.before-make.outputs.RELEASE_VERSION }}
|
RELEASE_VERSION: ${{ github.event.inputs.version || needs.before-make.outputs.RELEASE_VERSION }}
|
||||||
- name: Create Release Draft
|
- name: Create Release Draft
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: core
|
name: core
|
||||||
path: ./apps/core/dist
|
path: ./packages/frontend/core/dist
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
build-server:
|
build-server:
|
||||||
@@ -61,7 +61,7 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: server-dist
|
name: server-dist
|
||||||
path: ./apps/server/dist
|
path: ./packages/backend/server/dist
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
build-storage:
|
build-storage:
|
||||||
@@ -85,7 +85,7 @@ jobs:
|
|||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: storage.node
|
name: storage.node
|
||||||
path: ./packages/storage/storage.node
|
path: ./packages/backend/storage/storage.node
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
build-docker:
|
build-docker:
|
||||||
@@ -102,17 +102,17 @@ jobs:
|
|||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: core
|
name: core
|
||||||
path: ./apps/core/dist
|
path: ./packages/frontend/core/dist
|
||||||
- name: Download server dist
|
- name: Download server dist
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: server-dist
|
name: server-dist
|
||||||
path: ./apps/server/dist
|
path: ./packages/backend/server/dist
|
||||||
- name: Download storage.node
|
- name: Download storage.node
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: storage.node
|
name: storage.node
|
||||||
path: ./apps/server
|
path: ./packages/backend/server
|
||||||
- name: Setup Git short hash
|
- name: Setup Git short hash
|
||||||
run: |
|
run: |
|
||||||
echo "GIT_SHORT_HASH=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
|
echo "GIT_SHORT_HASH=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
paths:
|
paths:
|
||||||
- packages/workers/**
|
- tools/workers/**
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
deploy:
|
deploy:
|
||||||
@@ -19,4 +19,4 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
apiToken: ${{ secrets.CF_API_TOKEN }}
|
apiToken: ${{ secrets.CF_API_TOKEN }}
|
||||||
accountId: ${{ secrets.CF_ACCOUNT_ID }}
|
accountId: ${{ secrets.CF_ACCOUNT_ID }}
|
||||||
workingDirectory: 'packages/workers'
|
workingDirectory: 'tools/workers'
|
||||||
+2
-2
@@ -3,8 +3,8 @@
|
|||||||
"version": 1,
|
"version": 1,
|
||||||
"list": [
|
"list": [
|
||||||
{
|
{
|
||||||
"input": "./packages/i18n/src/resources/en.json",
|
"input": "./packages/frontend/i18n/src/resources/en.json",
|
||||||
"output": "./packages/i18n/src/i18n-generated",
|
"output": "./packages/frontend/i18n/src/i18n-generated",
|
||||||
"parser": {
|
"parser": {
|
||||||
"type": "i18next",
|
"type": "i18next",
|
||||||
"contextSeparator": "$",
|
"contextSeparator": "$",
|
||||||
|
|||||||
+4
-4
@@ -2,16 +2,16 @@ yarn.lock
|
|||||||
target
|
target
|
||||||
lib
|
lib
|
||||||
test-results
|
test-results
|
||||||
packages/i18n/src/i18n-generated.ts
|
|
||||||
packages/graphql/src/graphql/index.ts
|
|
||||||
.next
|
.next
|
||||||
out
|
out
|
||||||
dist
|
dist
|
||||||
.yarn
|
.yarn
|
||||||
tests/affine-legacy/**/static
|
|
||||||
.github/helm
|
.github/helm
|
||||||
_next
|
_next
|
||||||
storybook-static
|
storybook-static
|
||||||
web-static
|
web-static
|
||||||
public
|
public
|
||||||
apps/server/src/schema.gql
|
packages/backend/server/src/schema.gql
|
||||||
|
packages/frontend/i18n/src/i18n-generated.ts
|
||||||
|
packages/frontend/graphql/src/graphql/index.ts
|
||||||
|
tests/affine-legacy/**/static
|
||||||
Vendored
+1
-9
@@ -29,15 +29,7 @@
|
|||||||
"[typescriptreact]": {
|
"[typescriptreact]": {
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
},
|
},
|
||||||
"vitest.include": [
|
"vitest.include": ["packages/**/*.spec.ts", "packages/**/*.spec.tsx"],
|
||||||
"packages/**/*.spec.ts",
|
|
||||||
"packages/**/*.spec.tsx",
|
|
||||||
"apps/web/**/*.spec.ts",
|
|
||||||
"apps/web/**/*.spec.tsx",
|
|
||||||
"apps/electron/src/**/*.spec.ts",
|
|
||||||
"tests/unit/**/*.spec.ts",
|
|
||||||
"tests/unit/**/*.spec.tsx"
|
|
||||||
],
|
|
||||||
"rust-analyzer.check.extraEnv": {
|
"rust-analyzer.check.extraEnv": {
|
||||||
"DATABASE_URL": "sqlite:affine.db"
|
"DATABASE_URL": "sqlite:affine.db"
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -1,9 +1,9 @@
|
|||||||
[workspace]
|
[workspace]
|
||||||
resolver = "2"
|
resolver = "2"
|
||||||
members = [
|
members = [
|
||||||
"./packages/native",
|
"./packages/frontend/native",
|
||||||
"./packages/native/schema",
|
"./packages/frontend/native/schema",
|
||||||
"./packages/storage",
|
"./packages/backend/storage",
|
||||||
]
|
]
|
||||||
|
|
||||||
[profile.dev.package.sqlx-macros]
|
[profile.dev.package.sqlx-macros]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ Copyright (c) 2022-present TOEVERYTHING PTE. LTD. and its affiliates.
|
|||||||
|
|
||||||
Portions of this software are licensed as follows:
|
Portions of this software are licensed as follows:
|
||||||
|
|
||||||
- All content that resides under the "apps/server" directory of this repository, if that directory exists, is licensed under the license defined in "apps/server/LICENSE".
|
- All content that resides under the "packages/backend/server" directory of this repository, if that directory exists, is licensed under the license defined in "packages/backend/server/LICENSE".
|
||||||
- All third party components incorporated into the AFFiNE Software are licensed under the original license provided by the owner of the applicable component.
|
- All third party components incorporated into the AFFiNE Software are licensed under the original license provided by the owner of the applicable component.
|
||||||
- Content outside of the above mentioned directories or restrictions above is available under the "MIT" license as defined in "LICENSE-MIT".
|
- Content outside of the above mentioned directories or restrictions above is available under the "MIT" license as defined in "LICENSE-MIT".
|
||||||
|
|
||||||
|
|||||||
@@ -110,9 +110,9 @@ If you have questions, you are welcome to contact us. One of the best places to
|
|||||||
| Name | | |
|
| Name | | |
|
||||||
| ----------------------------------------------------------------------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| ----------------------------------------------------------------------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| [@toeverything/component](https://github.com/toeverything/design/tree/main/packages/components) | Toeverything Shared Component Resources | |
|
| [@toeverything/component](https://github.com/toeverything/design/tree/main/packages/components) | Toeverything Shared Component Resources | |
|
||||||
| [@affine/component](packages/component) | AFFiNE Component Resources | [](https://affine-storybook.vercel.app/) |
|
| [@affine/component](packages/frontend/component) | AFFiNE Component Resources | [](https://affine-storybook.vercel.app/) |
|
||||||
| [@toeverything/y-indexeddb](packages/y-indexeddb) | IndexedDB database adapter for Yjs | [](https://www.npmjs.com/package/@toeverything/y-indexeddb) |
|
| [@toeverything/y-indexeddb](packages/common/y-indexeddb) | IndexedDB database adapter for Yjs | [](https://www.npmjs.com/package/@toeverything/y-indexeddb) |
|
||||||
| [@toeverything/theme](packages/theme) | AFFiNE theme | [](https://www.npmjs.com/package/@toeverything/theme) |
|
| [@toeverything/theme](packages/common/theme) | AFFiNE theme | [](https://www.npmjs.com/package/@toeverything/theme) |
|
||||||
|
|
||||||
## Plugins
|
## Plugins
|
||||||
|
|
||||||
@@ -120,8 +120,8 @@ If you have questions, you are welcome to contact us. One of the best places to
|
|||||||
>
|
>
|
||||||
> (Currently, the plugin system is under heavy development. You will see the plugin system in the canary release.)
|
> (Currently, the plugin system is under heavy development. You will see the plugin system in the canary release.)
|
||||||
|
|
||||||
- [@affine/sdk](./packages/sdk) - SDK for developing plugins
|
- [@affine/sdk](./packages/common/sdk) - SDK for developing plugins
|
||||||
- [@affine/plugin-cli](./packages/plugin-cli) - CLI for developing plugins
|
- [@affine/plugin-cli](./tools/plugin-cli) - CLI for developing plugins
|
||||||
|
|
||||||
| Official Plugin | Description | Status |
|
| Official Plugin | Description | Status |
|
||||||
| ----------------------------------------------------- | ----------------------------------------- | ------ |
|
| ----------------------------------------------------- | ----------------------------------------- | ------ |
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
# Apps structure
|
|
||||||
|
|
||||||
> This is the structure of the `apps` directory.
|
|
||||||
|
|
||||||
## docs
|
|
||||||
|
|
||||||
AFFiNE Developer Documentation using [waku](https://github.com/dai-shi/waku).
|
|
||||||
|
|
||||||
## electron
|
|
||||||
|
|
||||||
> `core` needs to be built before electron.
|
|
||||||
|
|
||||||
AFFiNE Desktop (macOS, Linux and Windows Distribution) using [Electron](https://www.electronjs.org/).
|
|
||||||
|
|
||||||
## server
|
|
||||||
|
|
||||||
Server using [Nest.js](https://nestjs.com/).
|
|
||||||
|
|
||||||
## storybook
|
|
||||||
|
|
||||||
Storybook using [Storybook](https://storybook.js.org/).
|
|
||||||
|
|
||||||
## prototype
|
|
||||||
|
|
||||||
AFFiNE Prototype using [React.js](https://reactjs.org/) + [Vite](https://vitejs.dev/).
|
|
||||||
|
|
||||||
## core
|
|
||||||
|
|
||||||
AFFiNE Core Application using [React.js](https://reactjs.org/) + [Webpack](https://webpack.js.org/).
|
|
||||||
+1
-1
@@ -59,7 +59,7 @@ yarn install
|
|||||||
|
|
||||||
### Build Native Dependencies
|
### Build Native Dependencies
|
||||||
|
|
||||||
Run the following script. It will build the native module at [`/packages/native`](/packages/native) and build Node.js binding using [NAPI.rs](https://napi.rs/).
|
Run the following script. It will build the native module at [`/packages/frontend/native`](/packages/frontend/native) and build Node.js binding using [NAPI.rs](https://napi.rs/).
|
||||||
This could take a while if you build it for the first time.
|
This could take a while if you build it for the first time.
|
||||||
Note: use `strip` from system instead of `binutils` if you are running MacOS. [see problem here](https://github.com/toeverything/AFFiNE/discussions/2840)
|
Note: use `strip` from system instead of `binutils` if you are running MacOS. [see problem here](https://github.com/toeverything/AFFiNE/discussions/2840)
|
||||||
|
|
||||||
|
|||||||
@@ -22,10 +22,10 @@ To run AFFiNE Desktop Client Application locally, run the following commands:
|
|||||||
yarn install
|
yarn install
|
||||||
yarn dev
|
yarn dev
|
||||||
|
|
||||||
# in packages/native
|
# in packages/frontend/native
|
||||||
yarn build
|
yarn build
|
||||||
|
|
||||||
# in apps/electron
|
# in packages/frontend/electron
|
||||||
yarn dev
|
yarn dev
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ Now you should see the Electron app window popping up shortly.
|
|||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
To build the desktop client application, run `yarn make` in `apps/electron`.
|
To build the desktop client application, run `yarn make` in `packages/frontend/electron`.
|
||||||
|
|
||||||
Note: you may want to comment out `osxSign` and `osxNotarize` in `forge.config.js` to avoid signing and notarizing the app.
|
Note: you may want to comment out `osxSign` and `osxNotarize` in `forge.config.js` to avoid signing and notarizing the app.
|
||||||
|
|
||||||
@@ -41,7 +41,7 @@ Once the build is complete, you can find the paths to the binaries in the termin
|
|||||||
|
|
||||||
```
|
```
|
||||||
Finished 2 bundles at:
|
Finished 2 bundles at:
|
||||||
› Artifacts available at: <affine-repo>/apps/electron/out/make
|
› Artifacts available at: <affine-repo>/packages/frontend/electron/out/make
|
||||||
```
|
```
|
||||||
|
|
||||||
## CI
|
## CI
|
||||||
|
|||||||
@@ -14,21 +14,13 @@ For the debugging purpose, you might need use local OctoBase on port 3000.
|
|||||||
|
|
||||||
The codebase is organized as follows:
|
The codebase is organized as follows:
|
||||||
|
|
||||||
- `apps/` contains the source code for the different entry points of the project.
|
- `packages/` contains all code running in production.
|
||||||
- `web/` contains the source code for the web app.
|
- `backend/` contains backend code, more information from <https://github.com/toeverything/OctoBase>.
|
||||||
- `electron/` contains the source code for the Electron app.
|
- `frontend/` contains frontend code, including the web app, the electron app and business libraries.
|
||||||
- `server/` backend side for AFFiNE, see <https://github.com/toeverything/OctoBase> instead.
|
- `plugins/` contains all build-in plugins.
|
||||||
- `packages/` contains the source code for all the packages in the repo.
|
- `common` contains the isomorphic code or basic libraries without business.
|
||||||
- `cli` contains the source code for the CLI. Development only.
|
- `tools/` contains tools to help developing or CI, not used in production.
|
||||||
- `component` contains the source code for the UI component library.
|
- `tests/` contains testings across different libraries, including e2e testings and integration testings.
|
||||||
- `debug` contains the source code for the debug helper.
|
|
||||||
- `env` contains the source code for the environment setup.
|
|
||||||
- `hooks` contains the source code for the custom React hooks.
|
|
||||||
- `i18n` contains the source code for the internationalization.
|
|
||||||
- `jotai` contains the source code for the Jotai store atoms.
|
|
||||||
- `octobase-node` contains the source code for the OctoBase Node.js binding using Rust.
|
|
||||||
- `templates` contains the source code for the templates.
|
|
||||||
- `workspace` contains the source code for the workspace related code.
|
|
||||||
|
|
||||||
### `@affine/env`
|
### `@affine/env`
|
||||||
|
|
||||||
@@ -50,7 +42,7 @@ Current we have two workspace plugin:
|
|||||||
- Each workspace plugin has its state and is isolated from other workspace plugins.
|
- Each workspace plugin has its state and is isolated from other workspace plugins.
|
||||||
- The workspace plugin is responsible for its own state management, data persistence, synchronization, data backup and recovery.
|
- The workspace plugin is responsible for its own state management, data persistence, synchronization, data backup and recovery.
|
||||||
|
|
||||||
For the workspace API, see [types.ts](../../packages/workspace/src/type.ts).
|
For the workspace API, see [types.ts](../../packages/frontend/workspace/src/type.ts).
|
||||||
|
|
||||||
### `@affine/component`
|
### `@affine/component`
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ postgres=# \du
|
|||||||
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
|
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Set the following config to `apps/server/.env`
|
### Set the following config to `packages/backend/server/.env`
|
||||||
|
|
||||||
```
|
```
|
||||||
DATABASE_URL="postgresql://affine:affine@localhost:5432/affine"
|
DATABASE_URL="postgresql://affine:affine@localhost:5432/affine"
|
||||||
|
|||||||
+9
-16
@@ -6,20 +6,13 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
".",
|
".",
|
||||||
"apps/*",
|
"packages/*/*",
|
||||||
"plugins/*",
|
"tools/*",
|
||||||
"packages/*",
|
"!tools/@types",
|
||||||
"packages/@types/*",
|
"tools/@types/*",
|
||||||
"tests/fixtures",
|
"tests/*",
|
||||||
"tests/kit",
|
"!tests/affine-legacy",
|
||||||
"tests/affine-legacy/*",
|
"tests/affine-legacy/*"
|
||||||
"tests/affine-local",
|
|
||||||
"tests/affine-migration",
|
|
||||||
"tests/affine-desktop",
|
|
||||||
"tests/affine-desktop-cloud",
|
|
||||||
"tests/affine-plugin",
|
|
||||||
"tests/affine-prototype",
|
|
||||||
"tests/affine-cloud"
|
|
||||||
],
|
],
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.16.1 <19.0.0"
|
"node": ">=18.16.1 <19.0.0"
|
||||||
@@ -34,7 +27,7 @@
|
|||||||
"build:plugins": "yarn nx run-many -t build --projects=tag:plugin",
|
"build:plugins": "yarn nx run-many -t build --projects=tag:plugin",
|
||||||
"build:storybook": "yarn nx build @affine/storybook",
|
"build:storybook": "yarn nx build @affine/storybook",
|
||||||
"start:web-static": "yarn workspace @affine/core static-server",
|
"start:web-static": "yarn workspace @affine/core static-server",
|
||||||
"start:storybook": "yarn exec serve apps/storybook/storybook-static -l 6006",
|
"start:storybook": "yarn exec serve tests/storybook/storybook-static -l 6006",
|
||||||
"serve:test-static": "yarn exec serve tests/fixtures --cors -p 8081",
|
"serve:test-static": "yarn exec serve tests/fixtures --cors -p 8081",
|
||||||
"lint:eslint": "eslint . --ext .js,mjs,.ts,.tsx --cache",
|
"lint:eslint": "eslint . --ext .js,mjs,.ts,.tsx --cache",
|
||||||
"lint:eslint:fix": "yarn lint:eslint --fix",
|
"lint:eslint:fix": "yarn lint:eslint --fix",
|
||||||
@@ -46,7 +39,7 @@
|
|||||||
"test:ui": "vitest --ui",
|
"test:ui": "vitest --ui",
|
||||||
"test:coverage": "vitest run --coverage",
|
"test:coverage": "vitest run --coverage",
|
||||||
"notify": "node scripts/notify.mjs",
|
"notify": "node scripts/notify.mjs",
|
||||||
"circular": "madge --circular --ts-config ./tsconfig.json ./apps/core/src/pages/**/*.tsx ./apps/core/src/index.tsx ./apps/electron/src/*/index.ts",
|
"circular": "madge --circular --ts-config ./tsconfig.json ./packages/frontend/core/src/pages/**/*.tsx ./packages/frontend/core/src/index.tsx ./packages/frontend/electron/src/*/index.ts",
|
||||||
"typecheck": "tsc -b tsconfig.json --diagnostics",
|
"typecheck": "tsc -b tsconfig.json --diagnostics",
|
||||||
"postinstall": "node ./scripts/check-version.mjs && yarn i18n-codegen gen && yarn husky install"
|
"postinstall": "node ./scripts/check-version.mjs && yarn i18n-codegen gen && yarn husky install"
|
||||||
},
|
},
|
||||||
|
|||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 1150 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user