From 16012432a1d847da96394239efe7215afb1bbcf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9gis=20Behmo?= Date: Mon, 20 Nov 2023 17:39:47 +0100 Subject: [PATCH 1/3] feat: simplify nightly version management By pulling the version suffix from tutor, we avoid git conflicts when merging the release branch in nightly. --- setup.py | 2 +- tutornotes/__about__.py | 6 ------ tutornotes/plugin.py | 5 +++++ 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/setup.py b/setup.py index 41e7e69..0316dda 100644 --- a/setup.py +++ b/setup.py @@ -15,7 +15,7 @@ setup( name="tutor-notes", - version=about["__package_version__"], + version=about["__version__"], url="https://docs.tutor.overhang.io/", project_urls={ "Documentation": "https://docs.tutor.overhang.io/", diff --git a/tutornotes/__about__.py b/tutornotes/__about__.py index 5f3e59d..99e36f2 100644 --- a/tutornotes/__about__.py +++ b/tutornotes/__about__.py @@ -1,8 +1,2 @@ __version__ = "16.0.2" -__package_version__ = __version__ -# Handle version suffix for nightly, just like tutor core. -__version_suffix__ = "" - -if __version_suffix__: - __version__ += "-" + __version_suffix__ diff --git a/tutornotes/plugin.py b/tutornotes/plugin.py index ba4e077..66ea3a2 100644 --- a/tutornotes/plugin.py +++ b/tutornotes/plugin.py @@ -7,9 +7,14 @@ import pkg_resources from tutor import hooks as tutor_hooks +from tutor.__about__ import __version_suffix__ from .__about__ import __version__ +# Handle version suffix in nightly mode, just like tutor core +if __version_suffix__: + __version__ += "-" + __version_suffix__ + config = { "unique": { "MYSQL_PASSWORD": "{{ 8|random_string }}", From d4a4274bc429adf50395c570a3cf35fdb933ed5f Mon Sep 17 00:00:00 2001 From: Emad Rad Date: Fri, 24 Nov 2023 02:35:41 +0330 Subject: [PATCH 2/3] Feat: Testing and Linting (#31) * ci: test action added * chore: changelog entry added * feat: Makefile added * fix: typing added * chore: cleanup with isort and black --- .github/workflows/test.yml | 22 ++++++ Makefile | 34 ++++++++++ changelog.d/20231005_153517_codewithemad.md | 1 + tutornotes/plugin.py | 75 +++++++++++---------- 4 files changed, 95 insertions(+), 37 deletions(-) create mode 100644 .github/workflows/test.yml create mode 100644 Makefile create mode 100644 changelog.d/20231005_153517_codewithemad.md diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..2ff802d --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,22 @@ +name: Run tests + +on: + pull_request: + branches: [master] + +jobs: + tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.8 + uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Upgrade pip + run: python -m pip install --upgrade pip setuptools + - name: Install dependencies + run: | + pip install 'tutor[dev]>=16.0.0,<17.0.0' + - name: Test lint, types, and format + run: make test diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2bc273a --- /dev/null +++ b/Makefile @@ -0,0 +1,34 @@ +.DEFAULT_GOAL := help +.PHONY: docs +SRC_DIRS = ./tutornotes +BLACK_OPTS = --exclude templates ${SRC_DIRS} + +# Warning: These checks are run on every PR. +test: test-lint test-types test-format # Run some static checks. + +test-format: ## Run code formatting tests. + black --check --diff $(BLACK_OPTS) + +test-lint: ## Run code linting tests + pylint --errors-only --enable=unused-import,unused-argument --ignore=templates --ignore=docs/_ext ${SRC_DIRS} + +test-types: ## Run type checks. + mypy --exclude=templates --ignore-missing-imports --implicit-reexport --strict ${SRC_DIRS} + +format: ## Format code automatically. + black $(BLACK_OPTS) + +isort: ## Sort imports. This target is not mandatory because the output may be incompatible with black formatting. Provided for convenience purposes. + isort --skip=templates ${SRC_DIRS} + +changelog-entry: ## Create a new changelog entry. + scriv create + +changelog: ## Collect changelog entries in the CHANGELOG.md file. + scriv collect + +ESCAPE =  +help: ## Print this help. + @grep -E '^([a-zA-Z_-]+:.*?## .*|######* .+)$$' Makefile \ + | sed 's/######* \(.*\)/@ $(ESCAPE)[1;31m\1$(ESCAPE)[0m/g' | tr '@' '\n' \ + | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[33m%-30s\033[0m %s\n", $$1, $$2}' diff --git a/changelog.d/20231005_153517_codewithemad.md b/changelog.d/20231005_153517_codewithemad.md new file mode 100644 index 0000000..81ca4f1 --- /dev/null +++ b/changelog.d/20231005_153517_codewithemad.md @@ -0,0 +1 @@ +- [Improvement] Added Makefile and test action to repository and formatted code with Black and isort. (by @CodeWithEmad) \ No newline at end of file diff --git a/tutornotes/plugin.py b/tutornotes/plugin.py index 66ea3a2..dd18a50 100644 --- a/tutornotes/plugin.py +++ b/tutornotes/plugin.py @@ -1,11 +1,10 @@ from __future__ import annotations -from glob import glob import os import typing as t +from glob import glob import pkg_resources - from tutor import hooks as tutor_hooks from tutor.__about__ import __version_suffix__ @@ -16,11 +15,6 @@ __version__ += "-" + __version_suffix__ config = { - "unique": { - "MYSQL_PASSWORD": "{{ 8|random_string }}", - "SECRET_KEY": "{{ 24|random_string }}", - "OAUTH2_SECRET": "{{ 24|random_string }}", - }, "defaults": { "VERSION": __version__, "DOCKER_IMAGE": "{{ DOCKER_REGISTRY }}overhangio/openedx-notes:{{ NOTES_VERSION }}", @@ -30,14 +24,14 @@ "REPOSITORY": "https://github.com/openedx/edx-notes-api", "REPOSITORY_VERSION": "{{ OPENEDX_COMMON_VERSION }}", }, + "unique": { + "MYSQL_PASSWORD": "{{ 8|random_string }}", + "SECRET_KEY": "{{ 24|random_string }}", + "OAUTH2_SECRET": "{{ 24|random_string }}", + }, } # Initialization hooks - -# To add a custom initialization task, create a bash script template under: -# tutorcodejail/templates/codejail/tasks/ -# and then add it to the MY_INIT_TASKS list. Each task is in the format: -# ("", ("", "", "