From 8aadd90a207f19d046a1b0fdf1ad8e5385261ea0 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Sat, 21 Dec 2024 16:55:38 +0100 Subject: [PATCH 1/3] Improve update workflow --- .../upgrade-jupyterlab-dependencies.yml | 25 ++++++++++++++++--- buildutils/src/upgrade-lab-dependencies.ts | 11 ++++++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/.github/workflows/upgrade-jupyterlab-dependencies.yml b/.github/workflows/upgrade-jupyterlab-dependencies.yml index 735a808c55..2b8be1b932 100644 --- a/.github/workflows/upgrade-jupyterlab-dependencies.yml +++ b/.github/workflows/upgrade-jupyterlab-dependencies.yml @@ -15,6 +15,11 @@ on: default: main required: false type: string + target_repo: + description: 'Target repository' + required: false + default: jupyter/notebook + type: string env: version_tag: 'latest' @@ -70,11 +75,14 @@ jobs: if [[ ! -z "$(git status --porcelain package.json)" ]]; then jlpm install jlpm deduplicate + + cd ui-tests + jlpm install fi - name: Create a PR env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.PERSONAL_GITHUB_TOKEN || secrets.GITHUB_TOKEN }} run: | set -eux @@ -95,9 +103,18 @@ jobs: git commit . -m "Update to JupyterLab v${LATEST}" git push --set-upstream origin "${BRANCH_NAME}" - gh pr create \ - --base ${{ inputs.branch || 'main' }} \ - --title "Update to JupyterLab v${LATEST}" \ + + PR_ARGS=( + --base "${{ inputs.branch || 'main' }}" + --title "Update to JupyterLab v${LATEST}" --body "New JupyterLab release [v${LATEST}](https://github.com/jupyterlab/jupyterlab/releases/tag/v${LATEST}) is available. Please review the lock file carefully." + ) + + # Add --repo flag only if target_repo is specified + if [[ -n "${{ inputs.target_repo }}" ]]; then + PR_ARGS+=(--repo "${{ inputs.target_repo }}") + fi + + gh pr create "${PR_ARGS[@]}" fi fi diff --git a/buildutils/src/upgrade-lab-dependencies.ts b/buildutils/src/upgrade-lab-dependencies.ts index 76a53bcd1a..2d70a02376 100644 --- a/buildutils/src/upgrade-lab-dependencies.ts +++ b/buildutils/src/upgrade-lab-dependencies.ts @@ -17,6 +17,7 @@ const PACKAGE_JSON_PATHS: string[] = [ 'packages/tree-extension/package.json', 'packages/tree/package.json', 'packages/ui-components/package.json', + 'ui-tests/package.json', ]; const DEPENDENCY_GROUP = '@jupyterlab'; @@ -78,7 +79,16 @@ async function updatePackageJson(newVersion: string): Promise { throw new Error(errorMessage); } + // fetch the new galata version + const galataUrl = `https://raw.githubusercontent.com/jupyterlab/jupyterlab/v${newVersion}/galata/package.json`; + const galataResponse = await fetch(galataUrl); + if (!galataResponse.ok) { + const errorMessage = `Failed to fetch galata/package.json from ${galataUrl}. HTTP status code: ${galataResponse.status}`; + throw new Error(errorMessage); + } + const newPackageJson = await response.json(); + const galataPackageJson = await galataResponse.json(); for (const packageJsonPath of PACKAGE_JSON_PATHS) { const filePath: string = path.resolve(packageJsonPath); @@ -87,6 +97,7 @@ async function updatePackageJson(newVersion: string): Promise { const newDependencies = { ...newPackageJson.devDependencies, ...newPackageJson.resolutions, + '@jupyterlab/galata': galataPackageJson.version, }; updateDependencyVersion(existingPackageJson, newDependencies); From 7cd229594d376de9db79ca2a2cdb954915c6a602 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Sat, 21 Dec 2024 18:53:15 +0100 Subject: [PATCH 2/3] dedupe in ui-tests --- .github/workflows/upgrade-jupyterlab-dependencies.yml | 5 +++-- ui-tests/package.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/upgrade-jupyterlab-dependencies.yml b/.github/workflows/upgrade-jupyterlab-dependencies.yml index 2b8be1b932..5e3ae4f335 100644 --- a/.github/workflows/upgrade-jupyterlab-dependencies.yml +++ b/.github/workflows/upgrade-jupyterlab-dependencies.yml @@ -73,11 +73,12 @@ jobs: echo "latest=${LATEST}" >> $GITHUB_ENV jlpm upgrade:lab:dependencies --set-version ${LATEST} if [[ ! -z "$(git status --porcelain package.json)" ]]; then - jlpm install + jlpm jlpm deduplicate cd ui-tests - jlpm install + jlpm + jlpm deduplicate fi - name: Create a PR diff --git a/ui-tests/package.json b/ui-tests/package.json index 124b3e3e15..e83e9e6ce3 100644 --- a/ui-tests/package.json +++ b/ui-tests/package.json @@ -6,9 +6,9 @@ "license": "BSD-3-Clause", "description": "Jupyter Notebook UI Tests", "scripts": { + "deduplicate": "jlpm dlx yarn-berry-deduplicate -s fewerHighest && jlpm install", "rimraf": "rimraf", "start": "jupyter notebook --config test/jupyter_server_config.py", - "start:detached": "yarn run start&", "test": "playwright test", "test:debug": "PWDEBUG=1 playwright test", "test:report": "http-server ./playwright-report -a localhost -o", From 3a7d2e6cd6b2a5ef98660fbc2b40a32ef8aa5691 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Sat, 21 Dec 2024 19:14:21 +0100 Subject: [PATCH 3/3] read name from package.json --- buildutils/src/upgrade-lab-dependencies.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildutils/src/upgrade-lab-dependencies.ts b/buildutils/src/upgrade-lab-dependencies.ts index 2d70a02376..1adf610536 100644 --- a/buildutils/src/upgrade-lab-dependencies.ts +++ b/buildutils/src/upgrade-lab-dependencies.ts @@ -97,7 +97,7 @@ async function updatePackageJson(newVersion: string): Promise { const newDependencies = { ...newPackageJson.devDependencies, ...newPackageJson.resolutions, - '@jupyterlab/galata': galataPackageJson.version, + [galataPackageJson.name]: galataPackageJson.version, }; updateDependencyVersion(existingPackageJson, newDependencies);