diff --git a/.github/workflows/e2e-dashboard-tests.yml b/.github/workflows/e2e-dashboard-tests.yml
index 929680a1..45258fb0 100644
--- a/.github/workflows/e2e-dashboard-tests.yml
+++ b/.github/workflows/e2e-dashboard-tests.yml
@@ -8,9 +8,9 @@ on:
- '**.py'
- '**.ts'
- '**.tsx'
- - 'package.json'
- - 'package-lock.json'
- - 'tsconfig.json'
+ - 'optuna_dashboard/package.json'
+ - 'optuna_dashboard/package-lock.json'
+ - 'optuna_dashboard/tsconfig.json'
jobs:
test:
runs-on: ubuntu-20.04
@@ -24,8 +24,12 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: '16'
- - run: npm install
- - run: npm run build:dev
+
+ - name: Build bundle.js
+ working-directory: optuna_dashboard
+ run: |
+ npm install
+ npm run build:dev
- name: Set up Python
uses: actions/setup-python@v2
diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml
index 2e1bdb41..d2ddf54d 100644
--- a/.github/workflows/pypi-publish.yml
+++ b/.github/workflows/pypi-publish.yml
@@ -18,8 +18,12 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: '16'
- - run: npm install
- - run: npm run build:prd
+
+ - name: Build bundle.js
+ working-directory: optuna_dashboard
+ run: |
+ npm install
+ npm run build:prd
- name: Set up Python
uses: actions/setup-python@v4
diff --git a/.github/workflows/typescript-tests.yml b/.github/workflows/typescript-tests.yml
index 5873f024..b536105a 100644
--- a/.github/workflows/typescript-tests.yml
+++ b/.github/workflows/typescript-tests.yml
@@ -6,9 +6,10 @@ on:
- '.eslintrc.js'
- '**.ts'
- '**.tsx'
- - 'package.json'
- - 'package-lock.json'
- - 'tsconfig.json'
+ - 'optuna_dashboard/package.json'
+ - 'optuna_dashboard/package-lock.json'
+ - 'optuna_dashboard/tsconfig.json'
+ - 'optuna_dashboard/webpack.config.js'
jobs:
lint:
name: Lint checking on Ubuntu
@@ -37,7 +38,9 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: '16'
- - run: |
+ - name: Build bundle.js
+ working-directory: optuna_dashboard
+ run: |
npm install
npm run build:dev
npm run build:prd
@@ -54,6 +57,8 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: '16'
- - run: |
+ - name: Run jest
+ working-directory: optuna_dashboard
+ run: |
npm install
npm run test
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index df519b53..53e5059a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -26,6 +26,7 @@ The repository is organized as follows:
Node.js v16 is required to compile TypeScript files.
```
+$ cd optuna_dashboard/
$ npm install
$ npm run build:dev
```
@@ -34,6 +35,7 @@ $ npm run build:dev
Watch for files changes
```
+$ cd optuna_dashboard/
$ npm run watch
```
@@ -43,6 +45,7 @@ $ npm run watch
Production builds
```
+$ cd optuna_dashboard/
$ npm run build:prd
```
diff --git a/Dockerfile b/Dockerfile
index 2f54020f..035eb835 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,12 +1,12 @@
FROM node:20 AS front-builder
-WORKDIR /usr/src
+WORKDIR /usr/src/optuna_dashboard
-ADD ./package.json /usr/src/package.json
-ADD ./package-lock.json /usr/src/package-lock.json
+ADD ./optuna_dashboard/package.json /usr/src/optuna_dashboard/package.json
+ADD ./optuna_dashboard/package-lock.json /usr/src/optuna_dashboard/package-lock.json
RUN npm install
-ADD ./tsconfig.json /usr/src/tsconfig.json
-ADD ./webpack.config.js /usr/src/webpack.config.js
+ADD ./optuna_dashboard/tsconfig.json /usr/src/optuna_dashboard/tsconfig.json
+ADD ./optuna_dashboard/webpack.config.js /usr/src/optuna_dashboard/webpack.config.js
ADD ./optuna_dashboard/ts/ /usr/src/optuna_dashboard/ts
RUN mkdir -p /usr/src/optuna_dashboard/public
RUN npm run build:prd
diff --git a/Makefile b/Makefile
index 55e8e69d..ab0a5778 100644
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,7 @@ vscode/assets/bundle.js: $(RUSTLIB_OUT) $(STANDALONE_SRC)
cd standalone_app && npm install && npm run build:vscode
$(DASHBOARD_TS_OUT): $(DASHBOARD_TS_SRC)
- npm install && npm run build:$(MODE)
+ cd optuna_dashboard && npm install && npm run build:$(MODE)
.PHONY: serve-browser-app
serve-browser-app: $(RUSTLIB_OUT)
diff --git a/optuna_dashboard/package.json b/optuna_dashboard/package.json
index 5e0ee00a..e9afdac9 100644
--- a/optuna_dashboard/package.json
+++ b/optuna_dashboard/package.json
@@ -9,7 +9,7 @@
"build": "webpack",
"build:dev": "NODE_ENV=development TYPESCRIPT_LOADER=esbuild-loader webpack",
"build:prd": "NODE_ENV=production webpack",
- "test": "jest typescript_tests"
+ "test": "jest ts/tests"
},
"author": "Masashi Shibata",
"license": "MIT",
diff --git a/optuna_dashboard/ts/hooks/useParamImportance.ts b/optuna_dashboard/ts/hooks/useParamImportance.ts
index 173f1d32..791644ca 100644
--- a/optuna_dashboard/ts/hooks/useParamImportance.ts
+++ b/optuna_dashboard/ts/hooks/useParamImportance.ts
@@ -1,6 +1,6 @@
import { useEffect } from "react"
import { useSnackbar } from "notistack"
-import { getParamImportances } from "../../ts/apiClient"
+import { getParamImportances } from "../apiClient"
import { useQuery } from "@tanstack/react-query"
import { AxiosError } from "axios"
diff --git a/optuna_dashboard/ts/tests/DataGrid.test.tsx b/optuna_dashboard/ts/tests/DataGrid.test.tsx
index 6d13deb7..809c3c42 100644
--- a/optuna_dashboard/ts/tests/DataGrid.test.tsx
+++ b/optuna_dashboard/ts/tests/DataGrid.test.tsx
@@ -2,10 +2,7 @@ import React from "react"
global.URL.createObjectURL = jest.fn()
import { cleanup, render } from "@testing-library/react"
-import {
- DataGrid,
- DataGridColumn,
-} from "../optuna_dashboard/ts/components/DataGrid"
+import { DataGrid, DataGridColumn } from "../components/DataGrid"
afterEach(cleanup)
diff --git a/optuna_dashboard/ts/tests/searchSpace.test.ts b/optuna_dashboard/ts/tests/searchSpace.test.ts
index fa36be7c..0e48e0c9 100644
--- a/optuna_dashboard/ts/tests/searchSpace.test.ts
+++ b/optuna_dashboard/ts/tests/searchSpace.test.ts
@@ -1,4 +1,4 @@
-import { mergeUnionSearchSpace } from "../optuna_dashboard/ts/searchSpace"
+import { mergeUnionSearchSpace } from "../searchSpace"
global.URL.createObjectURL = jest.fn()
diff --git a/optuna_dashboard/tsconfig.json b/optuna_dashboard/tsconfig.json
index 995da2dd..c05b9241 100644
--- a/optuna_dashboard/tsconfig.json
+++ b/optuna_dashboard/tsconfig.json
@@ -6,7 +6,7 @@
"noUnusedLocals": true,
"noImplicitThis": true,
"alwaysStrict": true,
- "outDir": "./optuna_dashboard/public/",
+ "outDir": "./public/",
"paths": {
"plotly.js-dist-min": ["node_modules/@types/plotly.js"]
},
@@ -21,11 +21,11 @@
"strict": true
},
"files": [
- "./optuna_dashboard/ts/index.tsx"
+ "./ts/index.tsx"
],
"include": [
- "./optuna_dashboard/ts/types/**/*",
- "./typescript_tests/**/*"
+ "./ts/types/**/*",
+ "./ts/tests/**/*"
],
"types": ["node"]
}
diff --git a/optuna_dashboard/webpack.config.js b/optuna_dashboard/webpack.config.js
index 41abca1b..56f989ad 100644
--- a/optuna_dashboard/webpack.config.js
+++ b/optuna_dashboard/webpack.config.js
@@ -28,9 +28,9 @@ const typeScriptLoader =
var config = {
mode,
- entry: [__dirname + "/optuna_dashboard/ts/index.tsx"],
+ entry: [__dirname + "/ts/index.tsx"],
output: {
- path: __dirname + "/optuna_dashboard/public/",
+ path: __dirname + "/public/",
filename: "bundle.js",
publicPath: "/public/",
},