diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 6362691..e988281 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -41,7 +41,7 @@ repos:
       - id: trailing-whitespace
 
   - repo: https://github.com/sirosen/check-jsonschema
-    rev: 0.17.1
+    rev: 0.18.1
     hooks:
       - id: check-jsonschema
         name: "Check GitHub Workflows"
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..c8129d4
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,194 @@
+Metadata-Version: 2.1
+Name: jupyter_packaging
+Version: 0.12.3
+Summary: Jupyter Packaging Utilities.
+Project-URL: Homepage, http://jupyter.org
+Project-URL: Source, https://github.com/jupyter/jupyter-packaging/
+Project-URL: Bug Tracker, https://github.com/jupyter/jupyter-packaging/issues
+Author-email: Jupyter Development Team <jupyter@googlegroups.com>
+License: BSD 3-Clause License
+        
+        Copyright (c) 2017, Project Jupyter
+        All rights reserved.
+        
+        Redistribution and use in source and binary forms, with or without
+        modification, are permitted provided that the following conditions are met:
+        
+        * Redistributions of source code must retain the above copyright notice, this
+          list of conditions and the following disclaimer.
+        
+        * Redistributions in binary form must reproduce the above copyright notice,
+          this list of conditions and the following disclaimer in the documentation
+          and/or other materials provided with the distribution.
+        
+        * Neither the name of the copyright holder nor the names of its
+          contributors may be used to endorse or promote products derived from
+          this software without specific prior written permission.
+        
+        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+        AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+Keywords: ipython,jupyter,packaging
+Classifier: Intended Audience :: Developers
+Classifier: Intended Audience :: Science/Research
+Classifier: Intended Audience :: System Administrators
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Requires-Python: >=3.7
+Requires-Dist: deprecation
+Requires-Dist: packaging
+Requires-Dist: setuptools>=60.2.0
+Requires-Dist: tomlkit
+Requires-Dist: wheel
+Provides-Extra: test
+Requires-Dist: build; extra == 'test'
+Requires-Dist: coverage; extra == 'test'
+Requires-Dist: pre-commit; extra == 'test'
+Requires-Dist: pytest; extra == 'test'
+Requires-Dist: pytest-cov; extra == 'test'
+Requires-Dist: pytest-mock; extra == 'test'
+Requires-Dist: pytest-timeout; extra == 'test'
+Description-Content-Type: text/markdown
+
+# Jupyter Packaging
+
+Tools to help build and install Jupyter Python packages that require a pre-build step that may include JavaScript build steps.
+
+## Install
+
+`pip install jupyter-packaging`
+
+## Usage
+
+There are three ways to use `jupyter-packaging` in another package.
+In general, you should not depend on `jupyter_packaging` as a runtime dependency, only as a build dependency.
+
+### As a Build Requirement
+
+Use a `pyproject.toml` file as outlined in [pep-518](https://www.python.org/dev/peps/pep-0518/).
+An example:
+
+```toml
+[build-system]
+requires = ["jupyter_packaging>=0.10,<2"]
+build-backend = "setuptools.build_meta"
+```
+
+Below is an example `setup.py` using the above config.
+It assumes the rest of your metadata is in [`setup.cfg`](https://setuptools.readthedocs.io/en/latest/userguide/declarative_config.html).
+We wrap the import in a try/catch to allow the file to be run without `jupyter_packaging`
+so that `python setup.py` can be run directly when not building.
+
+```py
+from setuptools import setup
+
+try:
+    from jupyter_packaging import wrap_installers, npm_builder
+    builder = npm_builder()
+    cmdclass = wrap_installers(pre_develop=builder, pre_dist=builder)
+except ImportError:
+    cmdclass = {}
+
+setup(cmdclass=cmdclass))
+```
+
+### As a Build Backend
+
+Use the `jupyter_packaging` build backend.
+The pre-build command is specified as metadata in `pyproject.toml`:
+
+```toml
+[build-system]
+requires = ["jupyter_packaging>=0.10,<2"]
+build-backend = "jupyter_packaging.build_api"
+
+[tool.jupyter-packaging.builder]
+factory = "jupyter_packaging.npm_builder"
+
+[tool.jupyter-packaging.build-args]
+build_cmd = "build:src"
+```
+
+The corresponding `setup.py` would be greatly simplified:
+
+```py
+from setuptools import setup
+setup()
+```
+
+The `tool.jupyter-packaging.builder` section expects a `func` value that points to an importable
+module and a function with dot separators.  If not given, no pre-build function will run.
+
+The optional `tool.jupyter-packaging.build-args` sections accepts a dict of keyword arguments to
+give to the pre-build command.
+
+The build backend does not handle the `develop` command (`pip install -e .`).
+If desired, you can wrap just that command:
+
+```py
+import setuptools
+
+try:
+    from jupyter_packaging import wrap_installers, npm_builder
+    builder = npm_builder(build_cmd="build:dev")
+    cmdclass = wrap_installers(pre_develop=builder)
+except ImportError:
+    cmdclass = {}
+
+setup(cmdclass=cmdclass))
+```
+
+The optional `tool.jupyter-packaging.options` section accepts the following options:
+
+- `skip-if-exists`: A list of local files whose presence causes the prebuild to skip
+- `ensured-targets`: A list of local file paths that should exist when the dist commands are run
+
+### As a Vendored File
+
+Vendor `setupbase.py` locally alongside `setup.py` and import the module directly.
+
+```py
+import setuptools
+from setupbase import wrap_installers, npm_builder
+func = npm_builder()
+cmdclass = wrap_installers(post_develop=func, pre_dist=func)
+setup(cmdclass=cmdclass)
+```
+
+## Usage Notes
+
+- This package does not work with the deprecated `python setup.py bdist_wheel` or `python setup.py sdist` commands, PyPA recommends using the [build](https://pypa-build.readthedocs.io/en/latest/index.html) package (`pip install build && python -m build .`).
+- We recommend using `include_package_data=True` and `MANIFEST.in` to control the assets included in the [package](https://setuptools.readthedocs.io/en/latest/userguide/datafiles.html).
+- Tools like [`check-manifest`](https://github.com/mgedmin/check-manifest) or [`manifix`](https://github.com/vidartf/manifix) can be used to ensure the desired assets are included.
+- Simple uses of `data_files` can be handled in `setup.cfg` or in `setup.py`.  If recursive directories are needed use `get_data_files()` from this package.
+- Unfortunately `data_files` are not supported in `develop` mode (a limitation of `setuptools`).  You can work around it by doing a full install (`pip install .`) before the develop install (`pip install -e .`), or by adding a script to push the data files to `sys.base_prefix`.
+
+## Development Install
+
+```bash
+git clone https://github.com/jupyter/jupyter-packaging.git
+cd jupyter-packaging
+pip install -e .[test]
+pre-commit install
+```
+
+You can test changes locally by creating a `pyproject.toml` with the following, replacing the local path to the git checkout:
+
+```toml
+[build-system]
+requires = ["jupyter_packaging@file://<path-to-git-checkout>"]
+build-backend = "setuptools.build_meta"
+```
+
+Note: you need to run `pip cache remove jupyter_packaging` any time changes are made to prevent `pip` from using a cached version of the source.
diff --git a/debian/changelog b/debian/changelog
index 6341764..d544a54 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+jupyter-packaging (0.12.3+git20220829.1.c63ff7f+ds-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Tue, 30 Aug 2022 00:29:20 -0000
+
 jupyter-packaging (0.12.3-1) unstable; urgency=medium
 
   * New upstream version.