From 299b067e0538ee484194c6b7b7767ba4f73c2c33 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 12:15:05 +0000 Subject: [PATCH 01/13] Add releaser workflows --- .github/workflows/prep-release.yml | 48 ++++++++++++++++++++++ .github/workflows/publish-release.yml | 58 +++++++++++++++++++++++++++ CHANGELOG.md | 5 +++ 3 files changed, 111 insertions(+) create mode 100644 .github/workflows/prep-release.yml create mode 100644 .github/workflows/publish-release.yml create mode 100644 CHANGELOG.md diff --git a/.github/workflows/prep-release.yml b/.github/workflows/prep-release.yml new file mode 100644 index 0000000..a5f598f --- /dev/null +++ b/.github/workflows/prep-release.yml @@ -0,0 +1,48 @@ +name: 'Step 1: Prep Release' +on: + workflow_dispatch: + inputs: + version_spec: + description: 'New Version Specifier' + default: 'next' + required: false + branch: + description: 'The branch to target' + required: false + post_version_spec: + description: 'Post Version Specifier' + required: false + silent: + description: "Set a placeholder in the changelog and don't publish the release." + required: false + type: boolean + since: + description: 'Use PRs with activity since this date or git reference' + required: false + since_last_stable: + description: 'Use PRs with activity since the last stable git tag' + required: false + type: boolean +jobs: + prep_release: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + + - name: Prep Release + id: prep-release + uses: jupyter-server/jupyter_releaser/.github/actions/prep-release@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + version_spec: ${{ github.event.inputs.version_spec }} + # silent: ${{ github.event.inputs.silent }} + post_version_spec: ${{ github.event.inputs.post_version_spec }} + branch: ${{ github.event.inputs.branch }} + since: ${{ github.event.inputs.since }} + since_last_stable: ${{ github.event.inputs.since_last_stable }} + + - name: '** Next Step **' + run: | + echo "Optional): Review Draft Release: ${{ steps.prep-release.outputs.release_url }}" diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 0000000..47afc21 --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -0,0 +1,58 @@ +name: 'Step 2: Publish Release' +on: + workflow_dispatch: + inputs: + branch: + description: 'The target branch' + required: false + release_url: + description: 'The URL of the draft GitHub release' + required: false + steps_to_skip: + description: 'Comma separated list of steps to skip' + required: false + +jobs: + publish_release: + runs-on: ubuntu-latest + environment: release + permissions: + id-token: write + steps: + - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + + - uses: actions/create-github-app-token@v1 + id: app-token + with: + app-id: ${{ vars.APP_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + + - name: Populate Release + id: populate-release + uses: jupyter-server/jupyter_releaser/.github/actions/populate-release@v2 + with: + token: ${{ steps.app-token.outputs.token }} + branch: ${{ github.event.inputs.branch }} + release_url: ${{ github.event.inputs.release_url }} + steps_to_skip: ${{ github.event.inputs.steps_to_skip }} + + - name: Finalize Release + id: finalize-release + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + uses: jupyter-server/jupyter_releaser/.github/actions/finalize-release@v2 + with: + token: ${{ steps.app-token.outputs.token }} + release_url: ${{ steps.populate-release.outputs.release_url }} + + - name: '** Next Step **' + if: ${{ success() }} + run: | + echo "Verify the final release" + echo ${{ steps.finalize-release.outputs.release_url }} + + - name: '** Failure Message **' + if: ${{ failure() }} + run: | + echo "Failed to Publish the Draft Release Url:" + echo ${{ steps.populate-release.outputs.release_url }} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..2d352af --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,5 @@ +# Changelog + + + + From 9fe85893aa165213c97040133bb9bdd7489b1d5c Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 12:15:49 +0000 Subject: [PATCH 02/13] add enforce label workflow --- .github/workflows/enforce-labels.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/workflows/enforce-labels.yml diff --git a/.github/workflows/enforce-labels.yml b/.github/workflows/enforce-labels.yml new file mode 100644 index 0000000..725feab --- /dev/null +++ b/.github/workflows/enforce-labels.yml @@ -0,0 +1,13 @@ +name: Enforce PR label + +on: + pull_request: + types: [labeled, unlabeled, opened, edited, synchronize] +jobs: + enforce-label: + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: enforce-triage-label + uses: jupyterlab/maintainer-tools/.github/actions/enforce-label@v1 From f29b2218446dbd53d921fb8b2a39963bb95e5811 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 12:19:56 +0000 Subject: [PATCH 03/13] add publishconfig to package.json --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index ce196b9..02caeff 100644 --- a/package.json +++ b/package.json @@ -32,5 +32,8 @@ "jest": "^29.7.0", "ts-jest": "^29.1.2", "typescript": "^5.4.5" + }, + "publishConfig": { + "access": "public" } } From b78e672d470caee84a0718fd58c706095e526261 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 13:31:16 +0000 Subject: [PATCH 04/13] Add RELEASE.md --- README.md | 2 ++ RELEASE.md | 6 ++++++ 2 files changed, 8 insertions(+) create mode 100644 RELEASE.md diff --git a/README.md b/README.md index 7c2c2bb..c33f914 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +# cockle + In-browser bash-like shell implemented in TypeScript. Intended for use in [JupyterLite](https://github.com/jupyterlite/jupyterlite). diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..dbfc66e --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,6 @@ +# Releasing `cockle` + +## Automated Releases with `jupyter_releaser` + +The recommended way to make a release is to use +[`jupyter_releaser`](https://jupyter-releaser.readthedocs.io/en/latest/get_started/making_release_from_repo.html). From 296f235893afc5b0ace7f79bbd7cc80fce57fc96 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 14:32:27 +0000 Subject: [PATCH 05/13] add check-release --- .github/workflows/check-release.yml | 30 +++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/check-release.yml diff --git a/.github/workflows/check-release.yml b/.github/workflows/check-release.yml new file mode 100644 index 0000000..dcd8e47 --- /dev/null +++ b/.github/workflows/check-release.yml @@ -0,0 +1,30 @@ +name: Check Release +on: + push: + branches: ["main"] + pull_request: + branches: ["*"] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + check_release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Base Setup + uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 + - name: Check Release + uses: jupyter-server/jupyter_releaser/.github/actions/check-release@v2 + with: + + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload Distributions + uses: actions/upload-artifact@v4 + with: + name: jupyterlite_terminal-releaser-dist-${{ github.run_number }} + path: .jupyter_releaser_checkout/dist From 27037b79e030fbe188b7ca9ab7b8f579ee822bae Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 14:35:48 +0000 Subject: [PATCH 06/13] update outdir to lib --- package.json | 6 +++--- tsconfig.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 2f4939d..6300d38 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,11 @@ "url": "https://github.com/jupyterlite/cockle/issues" }, "files": [ - "dist/", + "lib/", "src/**/*.ts" ], - "main": "dist/index.js", - "types": "dist/index.d.ts", + "main": "lib/index.js", + "types": "lib/index.d.ts", "scripts": { "build": "tsc", "test": "jest" diff --git a/tsconfig.json b/tsconfig.json index 48469a7..ad84f6d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,7 +12,7 @@ "noUnusedLocals": true, "preserveWatchOutput": true, "resolveJsonModule": true, - "outDir": "dist", + "outDir": "lib", "rootDir": "src", "strict": true, "strictNullChecks": true, From a8d33f8447f5a75ec139fb53a1c2b5c78069d4b1 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 14:36:16 +0000 Subject: [PATCH 07/13] update gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ac6d0bd..34a1f60 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -dist/ +lib/ node_modules/ tsconfig.tsbuildinfo .coverage/ From 7fdc4d6d8a0145375fb3812b39caea2b153ce7fd Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 14:42:31 +0000 Subject: [PATCH 08/13] fix config --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6300d38..4888735 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "url": "https://github.com/jupyterlite/cockle/issues" }, "files": [ - "lib/", + "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", "src/**/*.ts" ], "main": "lib/index.js", From ccc2d3edfa79e559b61012c29fee96f5523029cc Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 14:47:46 +0000 Subject: [PATCH 09/13] add prepare script --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 4888735..abb5155 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "types": "lib/index.d.ts", "scripts": { "build": "tsc", + "prepare": "npm run build", "test": "jest" }, "dependencies": { From 3a849a3dc71f0bbf934e96f10dea5273585ba9de Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 14:57:32 +0000 Subject: [PATCH 10/13] fix prepare script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index abb5155..f9f691c 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "types": "lib/index.d.ts", "scripts": { "build": "tsc", - "prepare": "npm run build", + "prepare": "npm install && npm run build", "test": "jest" }, "dependencies": { From 4f99539bfab1d6b60d7aff7544ca4d38e5a44470 Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 14:59:53 +0000 Subject: [PATCH 11/13] rename script --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f9f691c..dd11b43 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "types": "lib/index.d.ts", "scripts": { "build": "tsc", - "prepare": "npm install && npm run build", + "prepack": "npm run build", "test": "jest" }, "dependencies": { From 02671906144b67ae3a4af8ff1e90b6a08daa8adb Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 15:01:44 +0000 Subject: [PATCH 12/13] fix --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dd11b43..e64d36c 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "types": "lib/index.d.ts", "scripts": { "build": "tsc", - "prepack": "npm run build", + "prepack": "npm install && npm run build", "test": "jest" }, "dependencies": { From bc3d5d386032985d3aa91e28d1d2c7ecfdd85bdd Mon Sep 17 00:00:00 2001 From: Jeremy Tuloup Date: Wed, 29 May 2024 15:05:36 +0000 Subject: [PATCH 13/13] update releaser assets --- .github/workflows/check-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check-release.yml b/.github/workflows/check-release.yml index dcd8e47..3025687 100644 --- a/.github/workflows/check-release.yml +++ b/.github/workflows/check-release.yml @@ -26,5 +26,5 @@ jobs: - name: Upload Distributions uses: actions/upload-artifact@v4 with: - name: jupyterlite_terminal-releaser-dist-${{ github.run_number }} + name: jupyterlite-terminal-releaser-dist-${{ github.run_number }} path: .jupyter_releaser_checkout/dist