From 9cb4a8ead4e66e32c5ceb160495be9d7539b6c67 Mon Sep 17 00:00:00 2001 From: thegamecracks <61257169+thegamecracks@users.noreply.github.com> Date: Thu, 4 Jan 2024 02:30:58 -0500 Subject: [PATCH 01/10] refactor!: move src/js/ to src/js/reactpy/js/ This breaking change is needed to fix being unable to install reactpy from source distributions. --- src/{ => py/reactpy}/js/.eslintrc.json | 0 src/{ => py/reactpy}/js/.gitignore | 0 src/{ => py/reactpy}/js/README.md | 0 src/{ => py/reactpy}/js/app/.eslintrc.json | 0 src/{ => py/reactpy}/js/app/index.html | 0 src/{ => py/reactpy}/js/app/package-lock.json | 0 src/{ => py/reactpy}/js/app/package.json | 0 .../reactpy}/js/app/public/assets/reactpy-logo.ico | Bin src/{ => py/reactpy}/js/app/src/index.ts | 0 src/{ => py/reactpy}/js/app/tsconfig.json | 0 src/{ => py/reactpy}/js/app/vite.config.js | 0 src/{ => py/reactpy}/js/package-lock.json | 0 src/{ => py/reactpy}/js/package.json | 0 .../reactpy}/js/packages/@reactpy/client/.gitignore | 0 .../reactpy}/js/packages/@reactpy/client/README.md | 0 .../js/packages/@reactpy/client/package.json | 0 .../js/packages/@reactpy/client/src/components.tsx | 0 .../js/packages/@reactpy/client/src/index.ts | 0 .../js/packages/@reactpy/client/src/logger.ts | 0 .../js/packages/@reactpy/client/src/messages.ts | 0 .../js/packages/@reactpy/client/src/mount.tsx | 0 .../packages/@reactpy/client/src/reactpy-client.ts | 0 .../packages/@reactpy/client/src/reactpy-vdom.tsx | 0 .../js/packages/@reactpy/client/tsconfig.json | 0 .../js/packages/event-to-object/package.json | 0 .../js/packages/event-to-object/src/events.ts | 0 .../js/packages/event-to-object/src/index.ts | 0 .../event-to-object/tests/event-to-object.test.ts | 0 .../packages/event-to-object/tests/tooling/check.ts | 0 .../packages/event-to-object/tests/tooling/mock.ts | 0 .../packages/event-to-object/tests/tooling/setup.js | 0 .../js/packages/event-to-object/tsconfig.json | 0 .../js/packages/event-to-object/tsconfig.tests.json | 0 src/{ => py/reactpy}/js/tsconfig.package.json | 0 34 files changed, 0 insertions(+), 0 deletions(-) rename src/{ => py/reactpy}/js/.eslintrc.json (100%) rename src/{ => py/reactpy}/js/.gitignore (100%) rename src/{ => py/reactpy}/js/README.md (100%) rename src/{ => py/reactpy}/js/app/.eslintrc.json (100%) rename src/{ => py/reactpy}/js/app/index.html (100%) rename src/{ => py/reactpy}/js/app/package-lock.json (100%) rename src/{ => py/reactpy}/js/app/package.json (100%) rename src/{ => py/reactpy}/js/app/public/assets/reactpy-logo.ico (100%) rename src/{ => py/reactpy}/js/app/src/index.ts (100%) rename src/{ => py/reactpy}/js/app/tsconfig.json (100%) rename src/{ => py/reactpy}/js/app/vite.config.js (100%) rename src/{ => py/reactpy}/js/package-lock.json (100%) rename src/{ => py/reactpy}/js/package.json (100%) rename src/{ => py/reactpy}/js/packages/@reactpy/client/.gitignore (100%) rename src/{ => py/reactpy}/js/packages/@reactpy/client/README.md (100%) rename src/{ => py/reactpy}/js/packages/@reactpy/client/package.json (100%) rename src/{ => py/reactpy}/js/packages/@reactpy/client/src/components.tsx (100%) rename src/{ => py/reactpy}/js/packages/@reactpy/client/src/index.ts (100%) rename src/{ => py/reactpy}/js/packages/@reactpy/client/src/logger.ts (100%) rename src/{ => py/reactpy}/js/packages/@reactpy/client/src/messages.ts (100%) rename src/{ => py/reactpy}/js/packages/@reactpy/client/src/mount.tsx (100%) rename src/{ => py/reactpy}/js/packages/@reactpy/client/src/reactpy-client.ts (100%) rename src/{ => py/reactpy}/js/packages/@reactpy/client/src/reactpy-vdom.tsx (100%) rename src/{ => py/reactpy}/js/packages/@reactpy/client/tsconfig.json (100%) rename src/{ => py/reactpy}/js/packages/event-to-object/package.json (100%) rename src/{ => py/reactpy}/js/packages/event-to-object/src/events.ts (100%) rename src/{ => py/reactpy}/js/packages/event-to-object/src/index.ts (100%) rename src/{ => py/reactpy}/js/packages/event-to-object/tests/event-to-object.test.ts (100%) rename src/{ => py/reactpy}/js/packages/event-to-object/tests/tooling/check.ts (100%) rename src/{ => py/reactpy}/js/packages/event-to-object/tests/tooling/mock.ts (100%) rename src/{ => py/reactpy}/js/packages/event-to-object/tests/tooling/setup.js (100%) rename src/{ => py/reactpy}/js/packages/event-to-object/tsconfig.json (100%) rename src/{ => py/reactpy}/js/packages/event-to-object/tsconfig.tests.json (100%) rename src/{ => py/reactpy}/js/tsconfig.package.json (100%) diff --git a/src/js/.eslintrc.json b/src/py/reactpy/js/.eslintrc.json similarity index 100% rename from src/js/.eslintrc.json rename to src/py/reactpy/js/.eslintrc.json diff --git a/src/js/.gitignore b/src/py/reactpy/js/.gitignore similarity index 100% rename from src/js/.gitignore rename to src/py/reactpy/js/.gitignore diff --git a/src/js/README.md b/src/py/reactpy/js/README.md similarity index 100% rename from src/js/README.md rename to src/py/reactpy/js/README.md diff --git a/src/js/app/.eslintrc.json b/src/py/reactpy/js/app/.eslintrc.json similarity index 100% rename from src/js/app/.eslintrc.json rename to src/py/reactpy/js/app/.eslintrc.json diff --git a/src/js/app/index.html b/src/py/reactpy/js/app/index.html similarity index 100% rename from src/js/app/index.html rename to src/py/reactpy/js/app/index.html diff --git a/src/js/app/package-lock.json b/src/py/reactpy/js/app/package-lock.json similarity index 100% rename from src/js/app/package-lock.json rename to src/py/reactpy/js/app/package-lock.json diff --git a/src/js/app/package.json b/src/py/reactpy/js/app/package.json similarity index 100% rename from src/js/app/package.json rename to src/py/reactpy/js/app/package.json diff --git a/src/js/app/public/assets/reactpy-logo.ico b/src/py/reactpy/js/app/public/assets/reactpy-logo.ico similarity index 100% rename from src/js/app/public/assets/reactpy-logo.ico rename to src/py/reactpy/js/app/public/assets/reactpy-logo.ico diff --git a/src/js/app/src/index.ts b/src/py/reactpy/js/app/src/index.ts similarity index 100% rename from src/js/app/src/index.ts rename to src/py/reactpy/js/app/src/index.ts diff --git a/src/js/app/tsconfig.json b/src/py/reactpy/js/app/tsconfig.json similarity index 100% rename from src/js/app/tsconfig.json rename to src/py/reactpy/js/app/tsconfig.json diff --git a/src/js/app/vite.config.js b/src/py/reactpy/js/app/vite.config.js similarity index 100% rename from src/js/app/vite.config.js rename to src/py/reactpy/js/app/vite.config.js diff --git a/src/js/package-lock.json b/src/py/reactpy/js/package-lock.json similarity index 100% rename from src/js/package-lock.json rename to src/py/reactpy/js/package-lock.json diff --git a/src/js/package.json b/src/py/reactpy/js/package.json similarity index 100% rename from src/js/package.json rename to src/py/reactpy/js/package.json diff --git a/src/js/packages/@reactpy/client/.gitignore b/src/py/reactpy/js/packages/@reactpy/client/.gitignore similarity index 100% rename from src/js/packages/@reactpy/client/.gitignore rename to src/py/reactpy/js/packages/@reactpy/client/.gitignore diff --git a/src/js/packages/@reactpy/client/README.md b/src/py/reactpy/js/packages/@reactpy/client/README.md similarity index 100% rename from src/js/packages/@reactpy/client/README.md rename to src/py/reactpy/js/packages/@reactpy/client/README.md diff --git a/src/js/packages/@reactpy/client/package.json b/src/py/reactpy/js/packages/@reactpy/client/package.json similarity index 100% rename from src/js/packages/@reactpy/client/package.json rename to src/py/reactpy/js/packages/@reactpy/client/package.json diff --git a/src/js/packages/@reactpy/client/src/components.tsx b/src/py/reactpy/js/packages/@reactpy/client/src/components.tsx similarity index 100% rename from src/js/packages/@reactpy/client/src/components.tsx rename to src/py/reactpy/js/packages/@reactpy/client/src/components.tsx diff --git a/src/js/packages/@reactpy/client/src/index.ts b/src/py/reactpy/js/packages/@reactpy/client/src/index.ts similarity index 100% rename from src/js/packages/@reactpy/client/src/index.ts rename to src/py/reactpy/js/packages/@reactpy/client/src/index.ts diff --git a/src/js/packages/@reactpy/client/src/logger.ts b/src/py/reactpy/js/packages/@reactpy/client/src/logger.ts similarity index 100% rename from src/js/packages/@reactpy/client/src/logger.ts rename to src/py/reactpy/js/packages/@reactpy/client/src/logger.ts diff --git a/src/js/packages/@reactpy/client/src/messages.ts b/src/py/reactpy/js/packages/@reactpy/client/src/messages.ts similarity index 100% rename from src/js/packages/@reactpy/client/src/messages.ts rename to src/py/reactpy/js/packages/@reactpy/client/src/messages.ts diff --git a/src/js/packages/@reactpy/client/src/mount.tsx b/src/py/reactpy/js/packages/@reactpy/client/src/mount.tsx similarity index 100% rename from src/js/packages/@reactpy/client/src/mount.tsx rename to src/py/reactpy/js/packages/@reactpy/client/src/mount.tsx diff --git a/src/js/packages/@reactpy/client/src/reactpy-client.ts b/src/py/reactpy/js/packages/@reactpy/client/src/reactpy-client.ts similarity index 100% rename from src/js/packages/@reactpy/client/src/reactpy-client.ts rename to src/py/reactpy/js/packages/@reactpy/client/src/reactpy-client.ts diff --git a/src/js/packages/@reactpy/client/src/reactpy-vdom.tsx b/src/py/reactpy/js/packages/@reactpy/client/src/reactpy-vdom.tsx similarity index 100% rename from src/js/packages/@reactpy/client/src/reactpy-vdom.tsx rename to src/py/reactpy/js/packages/@reactpy/client/src/reactpy-vdom.tsx diff --git a/src/js/packages/@reactpy/client/tsconfig.json b/src/py/reactpy/js/packages/@reactpy/client/tsconfig.json similarity index 100% rename from src/js/packages/@reactpy/client/tsconfig.json rename to src/py/reactpy/js/packages/@reactpy/client/tsconfig.json diff --git a/src/js/packages/event-to-object/package.json b/src/py/reactpy/js/packages/event-to-object/package.json similarity index 100% rename from src/js/packages/event-to-object/package.json rename to src/py/reactpy/js/packages/event-to-object/package.json diff --git a/src/js/packages/event-to-object/src/events.ts b/src/py/reactpy/js/packages/event-to-object/src/events.ts similarity index 100% rename from src/js/packages/event-to-object/src/events.ts rename to src/py/reactpy/js/packages/event-to-object/src/events.ts diff --git a/src/js/packages/event-to-object/src/index.ts b/src/py/reactpy/js/packages/event-to-object/src/index.ts similarity index 100% rename from src/js/packages/event-to-object/src/index.ts rename to src/py/reactpy/js/packages/event-to-object/src/index.ts diff --git a/src/js/packages/event-to-object/tests/event-to-object.test.ts b/src/py/reactpy/js/packages/event-to-object/tests/event-to-object.test.ts similarity index 100% rename from src/js/packages/event-to-object/tests/event-to-object.test.ts rename to src/py/reactpy/js/packages/event-to-object/tests/event-to-object.test.ts diff --git a/src/js/packages/event-to-object/tests/tooling/check.ts b/src/py/reactpy/js/packages/event-to-object/tests/tooling/check.ts similarity index 100% rename from src/js/packages/event-to-object/tests/tooling/check.ts rename to src/py/reactpy/js/packages/event-to-object/tests/tooling/check.ts diff --git a/src/js/packages/event-to-object/tests/tooling/mock.ts b/src/py/reactpy/js/packages/event-to-object/tests/tooling/mock.ts similarity index 100% rename from src/js/packages/event-to-object/tests/tooling/mock.ts rename to src/py/reactpy/js/packages/event-to-object/tests/tooling/mock.ts diff --git a/src/js/packages/event-to-object/tests/tooling/setup.js b/src/py/reactpy/js/packages/event-to-object/tests/tooling/setup.js similarity index 100% rename from src/js/packages/event-to-object/tests/tooling/setup.js rename to src/py/reactpy/js/packages/event-to-object/tests/tooling/setup.js diff --git a/src/js/packages/event-to-object/tsconfig.json b/src/py/reactpy/js/packages/event-to-object/tsconfig.json similarity index 100% rename from src/js/packages/event-to-object/tsconfig.json rename to src/py/reactpy/js/packages/event-to-object/tsconfig.json diff --git a/src/js/packages/event-to-object/tsconfig.tests.json b/src/py/reactpy/js/packages/event-to-object/tsconfig.tests.json similarity index 100% rename from src/js/packages/event-to-object/tsconfig.tests.json rename to src/py/reactpy/js/packages/event-to-object/tsconfig.tests.json diff --git a/src/js/tsconfig.package.json b/src/py/reactpy/js/tsconfig.package.json similarity index 100% rename from src/js/tsconfig.package.json rename to src/py/reactpy/js/tsconfig.package.json From ad6fa49c155bb81d86c0031042317188b743809a Mon Sep 17 00:00:00 2001 From: thegamecracks <61257169+thegamecracks@users.noreply.github.com> Date: Thu, 4 Jan 2024 02:32:29 -0500 Subject: [PATCH 02/10] build: include js/ directory in source distributions --- src/py/reactpy/pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/py/reactpy/pyproject.toml b/src/py/reactpy/pyproject.toml index 309248507..2d7fb80d8 100644 --- a/src/py/reactpy/pyproject.toml +++ b/src/py/reactpy/pyproject.toml @@ -124,6 +124,9 @@ dependencies = [ types = "mypy --strict reactpy" all = ["types"] +[tool.hatch.build.targets.sdist] +only-include = ["js", "reactpy"] + [[tool.hatch.build.hooks.build-scripts.scripts]] work_dir = "../../js" out_dir = "reactpy/_static" From d33171b1d8cc2155f5ff3f163a93bd4b62eb246d Mon Sep 17 00:00:00 2001 From: thegamecracks <61257169+thegamecracks@users.noreply.github.com> Date: Thu, 4 Jan 2024 02:34:30 -0500 Subject: [PATCH 03/10] build: update hatch work_dir for the new js/ location --- src/py/reactpy/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/py/reactpy/pyproject.toml b/src/py/reactpy/pyproject.toml index 2d7fb80d8..5357b374a 100644 --- a/src/py/reactpy/pyproject.toml +++ b/src/py/reactpy/pyproject.toml @@ -128,7 +128,7 @@ all = ["types"] only-include = ["js", "reactpy"] [[tool.hatch.build.hooks.build-scripts.scripts]] -work_dir = "../../js" +work_dir = "js" out_dir = "reactpy/_static" commands = [ "npm ci", From ebea1017162035e98196625b654d9ae32ab46b9b Mon Sep 17 00:00:00 2001 From: thegamecracks <61257169+thegamecracks@users.noreply.github.com> Date: Thu, 4 Jan 2024 02:37:03 -0500 Subject: [PATCH 04/10] build: don't build client during sdist creation Wheel generation and installation is where building the client should happen --- src/py/reactpy/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/py/reactpy/pyproject.toml b/src/py/reactpy/pyproject.toml index 5357b374a..c4a033151 100644 --- a/src/py/reactpy/pyproject.toml +++ b/src/py/reactpy/pyproject.toml @@ -127,7 +127,7 @@ all = ["types"] [tool.hatch.build.targets.sdist] only-include = ["js", "reactpy"] -[[tool.hatch.build.hooks.build-scripts.scripts]] +[[tool.hatch.build.targets.wheel.hooks.build-scripts.scripts]] work_dir = "js" out_dir = "reactpy/_static" commands = [ From 910c9dee1f0ce2992333b160045664e1eb3ce8de Mon Sep 17 00:00:00 2001 From: thegamecracks <61257169+thegamecracks@users.noreply.github.com> Date: Thu, 4 Jan 2024 02:37:40 -0500 Subject: [PATCH 05/10] build: ensure _static/ files are included in wheel .gitignore would cause them to be missing from the wheel otherwise --- src/py/reactpy/pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/py/reactpy/pyproject.toml b/src/py/reactpy/pyproject.toml index c4a033151..f45e3cfb1 100644 --- a/src/py/reactpy/pyproject.toml +++ b/src/py/reactpy/pyproject.toml @@ -127,6 +127,9 @@ all = ["types"] [tool.hatch.build.targets.sdist] only-include = ["js", "reactpy"] +[tool.hatch.build.targets.wheel.force-include] +"reactpy/_static" = "reactpy/_static" # bypass .gitignore + [[tool.hatch.build.targets.wheel.hooks.build-scripts.scripts]] work_dir = "js" out_dir = "reactpy/_static" From 818191e95f8b4f003f028ee7f2a824edec7f459a Mon Sep 17 00:00:00 2001 From: thegamecracks <61257169+thegamecracks@users.noreply.github.com> Date: Thu, 4 Jan 2024 02:41:50 -0500 Subject: [PATCH 06/10] build: copy gitignore entries for hatch's file selection --- src/py/reactpy/.gitignore | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/py/reactpy/.gitignore b/src/py/reactpy/.gitignore index 0499d7590..b971c193a 100644 --- a/src/py/reactpy/.gitignore +++ b/src/py/reactpy/.gitignore @@ -1,4 +1,22 @@ .coverage.* +# --- External gitignores --- +# For hatch, this is the only .gitignore that matters! +# Changes to another .gitignore may need to be reflected here +# if it is necessary to exclude them from the source distribution, +# such as build artifacts. +# +# When duplicating patterns, keep in mind that their meaning changes +# between .gitignore locations: +# https://git-scm.com/docs/gitignore#_pattern_format + +# /.gitignore +node_modules + +# /src/py/reactpy/js/.gitignore +js/**/tsconfig.tsbuildinfo +js/packages/**/package-lock.json +js/**/dist + # --- Build Artifacts --- reactpy/_static From 2aa594dcdee59965ff7c7502fa9c602faf703f9c Mon Sep 17 00:00:00 2001 From: thegamecracks <61257169+thegamecracks@users.noreply.github.com> Date: Thu, 4 Jan 2024 02:42:32 -0500 Subject: [PATCH 07/10] docs: fix obsolete paths to src/js/ in contributing guide --- docs/source/about/contributor-guide.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/about/contributor-guide.rst b/docs/source/about/contributor-guide.rst index 73ae3f23d..5ab695936 100644 --- a/docs/source/about/contributor-guide.rst +++ b/docs/source/about/contributor-guide.rst @@ -131,8 +131,8 @@ This repository is set up to be able to manage many applications and libraries w in a variety of languages. All projects can be found under the ``src`` directory: - ``src/py/{project}`` - Python packages -- ``src/js/app`` - ReactPy's built-in JS client -- ``src/js/packages/{project}`` - JS packages +- ``src/py/reactpy/js/app`` - ReactPy's built-in JS client +- ``src/py/reactpy/js/packages/{project}`` - JS packages At the root of the repository is a ``pyproject.toml`` file that contains scripts and their respective dependencies for managing all other projects. Most of these global @@ -162,7 +162,7 @@ For Javascript, you'd do: .. code-block:: bash - cd src/js/packages/event-to-object + cd src/py/reactpy/js/packages/event-to-object npm run check:tests From 68272b07e8271c92e35c597895ead2234abe6d37 Mon Sep 17 00:00:00 2001 From: thegamecracks <61257169+thegamecracks@users.noreply.github.com> Date: Mon, 8 Jan 2024 16:58:10 -0500 Subject: [PATCH 08/10] build: delete node_modules when building sdist --- src/py/reactpy/hatch_build_sdist.py | 30 +++++++++++++++++++++++++++++ src/py/reactpy/pyproject.toml | 3 +++ 2 files changed, 33 insertions(+) create mode 100644 src/py/reactpy/hatch_build_sdist.py diff --git a/src/py/reactpy/hatch_build_sdist.py b/src/py/reactpy/hatch_build_sdist.py new file mode 100644 index 000000000..6984af705 --- /dev/null +++ b/src/py/reactpy/hatch_build_sdist.py @@ -0,0 +1,30 @@ +"""Custom sdist build hook for reactpy. + +As defined in pyproject.toml, this script should automatically be executed +when creating a source (.tar.gz) distribution. + +See also: https://hatch.pypa.io/1.9/plugins/build-hook/custom/ + +""" +import shutil +from pathlib import Path +from typing import Any + +from hatchling.builders.hooks.plugin.interface import BuildHookInterface + + +class CustomBuildHook(BuildHookInterface): + def initialize(self, version: str, build_data: dict[str, Any]) -> None: + # https://github.com/pypa/hatch/issues/1197 + # As a workaround, delete js/node_modules/ so hatchling does not + # mistakenly omit js/packages/ from the source distribution. + # + # If only the source distribution is built, i.e. by running one of: + # - `hatch build --target sdist` + # - `python -m build --sdist` + # then node_modules/ will be missing. Developers that later want to run + # `npm run build` will also need to reinstall with `npm ci`. + modules = Path(self.root) / "js" / "node_modules" + if modules.is_dir(): + print("Removing", modules) + shutil.rmtree(modules) diff --git a/src/py/reactpy/pyproject.toml b/src/py/reactpy/pyproject.toml index f45e3cfb1..6d1d1d9bf 100644 --- a/src/py/reactpy/pyproject.toml +++ b/src/py/reactpy/pyproject.toml @@ -130,6 +130,9 @@ only-include = ["js", "reactpy"] [tool.hatch.build.targets.wheel.force-include] "reactpy/_static" = "reactpy/_static" # bypass .gitignore +[tool.hatch.build.targets.sdist.hooks.custom] +path = "hatch_build_sdist.py" + [[tool.hatch.build.targets.wheel.hooks.build-scripts.scripts]] work_dir = "js" out_dir = "reactpy/_static" From 387b4d23459c8b14b329a921ad6410b3fe926d45 Mon Sep 17 00:00:00 2001 From: thegamecracks <61257169+thegamecracks@users.noreply.github.com> Date: Mon, 8 Jan 2024 17:12:03 -0500 Subject: [PATCH 09/10] fix: update tasks.py for the new js/ location --- tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tasks.py b/tasks.py index 65f75b208..dbe4500f5 100644 --- a/tasks.py +++ b/tasks.py @@ -50,7 +50,7 @@ def __call__( ROOT = Path(__file__).parent DOCS_DIR = ROOT / "docs" SRC_DIR = ROOT / "src" -JS_DIR = SRC_DIR / "js" +JS_DIR = SRC_DIR / "py" / "reactpy" / "js" PY_DIR = SRC_DIR / "py" PY_PROJECTS = [p for p in PY_DIR.iterdir() if (p / "pyproject.toml").exists()] TAG_PATTERN = re.compile( From b1f60efeba1252d264f119b818b1e3f7c37217f9 Mon Sep 17 00:00:00 2001 From: thegamecracks <61257169+thegamecracks@users.noreply.github.com> Date: Mon, 8 Jan 2024 17:52:10 -0500 Subject: [PATCH 10/10] docs: add changelog entry for #1183 --- docs/source/about/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/source/about/changelog.rst b/docs/source/about/changelog.rst index feecbd1f0..c0f7d77e9 100644 --- a/docs/source/about/changelog.rst +++ b/docs/source/about/changelog.rst @@ -27,6 +27,7 @@ Unreleased - :pull:`1118` - `module_from_template` is broken with a recent release of `requests` - :pull:`1131` - `module_from_template` did not work when using Flask backend +- :pull:`1183` - Fix broken source distributions due to missing JavaScript client source code **Added**