diff --git a/novelwriter/__init__.py b/novelwriter/__init__.py index fa3dd30e..82200f17 100644 --- a/novelwriter/__init__.py +++ b/novelwriter/__init__.py @@ -49,9 +49,9 @@ __license__ = "GPLv3" __author__ = "Veronica Berglyd Olsen" __maintainer__ = "Veronica Berglyd Olsen" __email__ = "code@vkbo.net" -__version__ = "2.8a2" -__hexversion__ = "0x020800a2" -__date__ = "2025-07-16" +__version__ = "2.8a3" +__hexversion__ = "0x020800a3" +__date__ = "2025-10-18" __status__ = "Stable" __domain__ = "novelwriter.io" diff --git a/pyproject.toml b/pyproject.toml index d5a0b673..5b5c3a9e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -29,10 +29,12 @@ dynamic = ["version"] [dependency-groups] dev = [ + { include-group = "build" }, { include-group = "docs" }, { include-group = "test" }, { include-group = "lint" }, ] +build = ["build", "setuptools>=77.0.3"] docs = [ "docutils>=0.17.1", "pygments>=2.7", @@ -59,8 +61,8 @@ novelwriter = "novelwriter:main" [tool.setuptools.dynamic] version = { attr = "novelwriter.__init__.__version__" } -[tool.setuptools] -packages = ["novelwriter"] +[tool.setuptools.packages.find] +include = ["novelwriter*"] [tool.isort] py_version = "310" diff --git a/setup/debian/control b/setup/debian/control index 24f0cd25..30c7921c 100644 --- a/setup/debian/control +++ b/setup/debian/control @@ -4,6 +4,8 @@ Section: text Priority: optional Build-Depends: dh-python, + pybuild-plugin-pyproject, + python3-build, python3-setuptools, python3-all, debhelper (>= 9), diff --git a/setup/make_release.sh b/setup/make_release.sh index 97438bd9..8c59a933 100755 --- a/setup/make_release.sh +++ b/setup/make_release.sh @@ -1,8 +1,6 @@ #!/bin/bash set -e -ENVPATH=/tmp/nwBuild - if [ ! -f pkgutils.py ]; then echo "Must be called from the root folder of the source" exit 1 @@ -12,18 +10,12 @@ echo "" echo " Building Dependencies" echo "================================================================================" echo "" -if [ ! -d $ENVPATH ]; then - python3 -m venv $ENVPATH -fi -source $ENVPATH/bin/activate -pip3 install -r requirements.txt -r docs/requirements.txt -python3 pkgutils.py build-assets -python3 pkgutils.py icons optional -deactivate +uv run pkgutils.py build-assets +uv run pkgutils.py icons optional echo "" echo " Building Linux Packages" echo "================================================================================" echo "" -python3 pkgutils.py build-deb --sign -python3 pkgutils.py build-ubuntu --sign +uv run pkgutils.py build-deb --sign +uv run pkgutils.py build-ubuntu --sign diff --git a/utils/common.py b/utils/common.py index 54528ba2..723da500 100644 --- a/utils/common.py +++ b/utils/common.py @@ -92,14 +92,19 @@ def copySourceCode(dst: Path) -> None: def copyPackageFiles(dst: Path, oldLicense: bool = False) -> None: """Copy files needed for packaging.""" - copyFiles = ["LICENSE.md", "setup/LICENSE-Apache-2.0.txt", "CREDITS.md", "pyproject.toml"] + copyFiles = [ + ROOT_DIR / "LICENSE.md", + SETUP_DIR / "LICENSE-Apache-2.0.txt", + ROOT_DIR / "CREDITS.md", + ROOT_DIR / "pyproject.toml", + ] for copyFile in copyFiles: - shutil.copyfile(copyFile, dst / copyFile) + shutil.copyfile(copyFile, dst / copyFile.name) print("Copied:", copyFile, flush=True) writeFile(dst / "MANIFEST.in", ( "include LICENSE.md\n" - "include setup/LICENSE-Apache-2.0.txt\n" + "include LICENSE-Apache-2.0.txt\n" "include CREDITS.md\n" "recursive-include novelwriter/assets *\n" ))