From 3e91f879f062aebf4a8fe88c9e71264f3604c1a7 Mon Sep 17 00:00:00 2001 From: "florian.jaeger" Date: Tue, 12 Nov 2024 12:13:35 +0100 Subject: [PATCH] chore: updated extension template --- .copier-answers.yml | 11 +++------ .github/workflows/build.yml | 2 +- LICENSE | 2 +- README.md | 5 ++++- RELEASE.md | 45 ++++++------------------------------- package.json | 9 ++++---- pyproject.toml | 2 +- ui-tests/README.md | 2 +- 8 files changed, 23 insertions(+), 55 deletions(-) diff --git a/.copier-answers.yml b/.copier-answers.yml index 6ee05b6..d6e4919 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,20 +1,15 @@ # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY -_commit: v4.2.4 +_commit: v4.3.5 _src_path: https://github.com/jupyterlab/extension-template author_email: datalab@tuwien.ac.at -author_name: Florian Jaeger -data_format: string -file_extension: '' +author_name: Florian Jaeger, Marijana Petojevic, Matthias Matt has_binder: true has_settings: true kind: server labextension_name: grader-labextension -mimetype: '' -mimetype_name: '' project_short_description: Grader Labextension is a JupyterLab extension to enable automatic grading of assignment notebooks. python_name: grader_labextension -repository: https://github.com/TU-Wien-dataLAB/Grader-Labextension +repository: https://github.com/TU-Wien-dataLAB/grader-labextension test: true -viewer_name: '' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8d45143..0fc57f2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -44,4 +44,4 @@ jobs: retention-days: 1 path: | ./dist - !./dist/**/*.md \ No newline at end of file + !./dist/**/*.md diff --git a/LICENSE b/LICENSE index a699b43..1e2b20c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ BSD 3-Clause License -Copyright (c) 2024, Florian Jaeger +Copyright (c) 2024, Florian Jaeger, Marijana Petojevic, Matthias Matt All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/README.md b/README.md index 92248d2..4c8826d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # grader_labextension -[![Github Actions Status](https://github.com/TU-Wien-dataLAB/Grader-Labextension/workflows/Build/badge.svg)](https://github.com/TU-Wien-dataLAB/Grader-Labextension/actions/workflows/build.yml)[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/TU-Wien-dataLAB/Grader-Labextension/main?urlpath=lab) +[![Github Actions Status](https://github.com/TU-Wien-dataLAB/grader-labextension/workflows/Build/badge.svg)](https://github.com/TU-Wien-dataLAB/grader-labextension/actions/workflows/build.yml) +[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/TU-Wien-dataLAB/grader-labextension/main?urlpath=lab) + + Grader Labextension is a JupyterLab extension to enable automatic grading of assignment notebooks. This extension is composed of a Python package named `grader_labextension` diff --git a/RELEASE.md b/RELEASE.md index e7238e9..8f62068 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -58,52 +58,21 @@ npm publish --access public ## Automated releases with the Jupyter Releaser -The extension repository should already be compatible with the Jupyter Releaser. - -Check out the [workflow documentation](https://jupyter-releaser.readthedocs.io/en/latest/get_started/making_release_from_repo.html) for more information. +The extension repository should already be compatible with the Jupyter Releaser. But +the GitHub repository and the package managers need to be properly set up. Please +follow the instructions of the Jupyter Releaser [checklist](https://jupyter-releaser.readthedocs.io/en/latest/how_to_guides/convert_repo_from_repo.html). Here is a summary of the steps to cut a new release: -- Add tokens to the [Github Secrets](https://docs.github.com/en/actions/security-guides/encrypted-secrets) in the repository: - - `ADMIN_GITHUB_TOKEN` (with "public_repo" and "repo:status" permissions); see the [documentation](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) - - `NPM_TOKEN` (with "automation" permission); see the [documentation](https://docs.npmjs.com/creating-and-viewing-access-tokens) -- Set up PyPI - -
Using PyPI trusted publisher (modern way) - -- Set up your PyPI project by [adding a trusted publisher](https://docs.pypi.org/trusted-publishers/adding-a-publisher/) - - The _workflow name_ is `publish-release.yml` and the _environment_ should be left blank. -- Ensure the publish release job as `permissions`: `id-token : write` (see the [documentation](https://docs.pypi.org/trusted-publishers/using-a-publisher/)) - -
- -
Using PyPI token (legacy way) - -- If the repo generates PyPI release(s), create a scoped PyPI [token](https://packaging.python.org/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/#saving-credentials-on-github). We recommend using a scoped token for security reasons. - -- You can store the token as `PYPI_TOKEN` in your fork's `Secrets`. - - - Advanced usage: if you are releasing multiple repos, you can create a secret named `PYPI_TOKEN_MAP` instead of `PYPI_TOKEN` that is formatted as follows: - - ```text - owner1/repo1,token1 - owner2/repo2,token2 - ``` - - If you have multiple Python packages in the same repository, you can point to them as follows: - - ```text - owner1/repo1/path/to/package1,token1 - owner1/repo1/path/to/package2,token2 - ``` - -
- - Go to the Actions panel - Run the "Step 1: Prep Release" workflow - Check the draft changelog - Run the "Step 2: Publish Release" workflow +> [!NOTE] +> Check out the [workflow documentation](https://jupyter-releaser.readthedocs.io/en/latest/get_started/making_release_from_repo.html) +> for more information. + ## Publishing to `conda-forge` If the package is not on conda forge yet, check the documentation to learn how to add it: https://conda-forge.org/docs/maintainer/adding_pkgs.html diff --git a/package.json b/package.json index 7158567..be2eb8c 100644 --- a/package.json +++ b/package.json @@ -7,18 +7,19 @@ "jupyterlab", "jupyterlab-extension" ], - "homepage": "https://github.com/TU-Wien-dataLAB/Grader-Labextension", + "homepage": "https://github.com/TU-Wien-dataLAB/grader-labextension", "bugs": { - "url": "https://github.com/TU-Wien-dataLAB/Grader-Labextension/issues" + "url": "https://github.com/TU-Wien-dataLAB/grader-labextension/issues" }, "license": "BSD-3-Clause", "author": { - "name": "Florian Jaeger", + "name": "Florian Jaeger, Marijana Petojevic, Matthias Matt", "email": "datalab@tuwien.ac.at" }, "files": [ "lib/**/*.{d.ts,eot,gif,html,jpg,js,js.map,json,png,svg,woff2,ttf}", "style/**/*.{css,js,eot,gif,html,jpg,json,png,svg,woff2,ttf}", + "src/**/*.{ts,tsx}", "schema/*.json" ], "main": "lib/index.js", @@ -26,7 +27,7 @@ "style": "style/index.css", "repository": { "type": "git", - "url": "https://github.com/TU-Wien-dataLAB/Grader-Labextension.git" + "url": "https://github.com/TU-Wien-dataLAB/grader-labextension.git" }, "scripts": { "build": "jlpm build:lib && jlpm build:labextension:dev", diff --git a/pyproject.toml b/pyproject.toml index ee1bd2c..9101f40 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -73,7 +73,7 @@ search = "grader-labextension=={current_version}" source = "nodejs" [tool.hatch.metadata.hooks.nodejs] -fields = ["description", "authors", "urls"] +fields = ["description", "authors", "urls", "keywords"] [tool.hatch.build.targets.sdist] artifacts = ["grader_labextension/labextension"] diff --git a/ui-tests/README.md b/ui-tests/README.md index 8d377fc..9182514 100644 --- a/ui-tests/README.md +++ b/ui-tests/README.md @@ -12,7 +12,7 @@ in [jupyter_server_test_config.py](./jupyter_server_test_config.py). The default configuration will produce video for failing tests and an HTML report. -> There is a new experimental UI mode that you may fall in love with; see [that video](https://www.youtube.com/watch?v=jF0yA-JLQW0). +> There is a UI mode that you may like; see [that video](https://www.youtube.com/watch?v=jF0yA-JLQW0). ## Run the tests