NAS-137581 / 26.04 / fix building on trixie (#929)

* fix building on trixie

* fix inconsistencies in pyproject.toml

* fix manifest.yml

* remove hard-coded debian version from readme
This commit is contained in:
Caleb St. John
2025-09-23 10:36:55 -04:00
committed by GitHub
parent 1d99cf8448
commit 87c0236b7a
7 changed files with 43 additions and 29 deletions

View File

@@ -8,11 +8,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python 3.10
- uses: actions/checkout@v4
- name: Set up Python 3.13
uses: actions/setup-python@v5
with:
python-version: '3.10'
python-version: '3.13'
- name: Validating manifest
run: |
python -m pip install --upgrade pip

4
MANIFEST.in Normal file
View File

@@ -0,0 +1,4 @@
include scripts/parse_deps.pl
include README.md
include LICENSE
include requirements.txt

View File

@@ -18,7 +18,7 @@ ifneq ($(REPO_CHANGED),0)
@${PYTHON} -m venv venv-${COMMIT_HASH} || { echo "Failed to create virutal environment"; exit 1; }
@{ . ./venv-${COMMIT_HASH}/bin/activate && \
python3 -m pip install -r requirements.txt >/dev/null 2>&1 && \
python3 setup.py install >/dev/null 2>&1; } || { echo "Failed to install scale-build"; exit 1; }
python3 -m pip install . >/dev/null 2>&1; } || { echo "Failed to install scale-build"; exit 1; }
endif
all: checkout packages update iso

View File

@@ -12,7 +12,8 @@ Found an issue in the build for SCALE? Please report it on our [Jira bugtracker]
## Requirements
- Debian 10 or later (VM or Bare-Metal)
- Supported version of Debian
- Python 3.11 or later
- 20GB of RAM
- At least 15GB of free disk space
@@ -33,6 +34,8 @@ In addition to the host, you will want to pre-install the following packages:
## Usage
The build system automatically manages a Python virtual environment to ensure build consistency. It detects changes in the git repository hash and automatically recreates the virtual environment when needed, ensuring that the build tools are always in sync with the current codebase.
After the pre-requistes are installed, simply run "make" (as root or sudo) to perform a complete build which performs the following steps:
``` make checkout ```

27
pyproject.toml Normal file
View File

@@ -0,0 +1,27 @@
[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "scale_build"
description = "A build framework for TrueNAS SCALE"
readme = "README.md"
license = {text = "GPL-3.0"}
requires-python = ">=3.11"
dynamic = ["version"]
dependencies = [
"coloredlogs",
"toposort",
"requests",
"pyyaml",
]
[project.scripts]
scale_build = "scale_build.main:main"
[tool.setuptools.packages.find]
where = ["."]
include = ["scale_build*", "truenas_install*"]
[tool.setuptools]
include-package-data = true

View File

@@ -1,2 +1,6 @@
[flake8]
max-line-length=120
[options]
scripts =
scripts/parse_deps.pl

View File

@@ -1,24 +0,0 @@
from setuptools import find_packages, setup
setup(
name='scale_build',
description='A build framework for TrueNAS SCALE',
packages=find_packages(),
include_package_data=True,
license='BSD',
platforms='any',
install_requires=[
'coloredlogs',
'toposort',
'requests',
'pyyaml'
],
entry_points={
'console_scripts': [
'scale_build = scale_build.main:main',
],
},
scripts=[
'scripts/parse_deps.pl',
]
)