Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan M. Taylor <dylan@dylanmtaylor.com>2022-02-12 16:29:12 -0500
committerGitHub <noreply@github.com>2022-02-12 22:29:12 +0100
commit532f0fdc3a8a2deb655182b4acf946f715f8e636 (patch)
tree055037609f3ae1d7dde5afa432a18e03b84ce626
parentc3310d01b76c4adc7194cd9300bf0a12595a355f (diff)
Various Build System Improvements (#971)
* Convert workflow from flit to twine for publishing * This could be split into two different tasks * Change build-system toml block to setuptools * Switch to standardized project block * Some corrections * Add build module * Remove symlinks * Move example and profiles folders to archinstall * Create symlinks outside of the archinstall folder * Add new workflow to build archinstall but not publish for regular commits * Add build artifacts * Rename, so it's just archinstall.zip * Replace symlinks with copies * Also replace symlinks with copies in python-build.yml * Revert "Create symlinks outside of the archinstall folder" This reverts commit d76cf18eaa9a5916178cda13df3258db678159c8. * Revert "Move example and profiles folders to archinstall" This reverts commit c41c1c9102129970f747a3b532cdf2b426a62a53. * Revert "Remove symlinks" This reverts commit fd959e32305edf4f1c13d90891eb13c6b2d41f79. * Switch up how I'm replacing symlinks with copies * Explore using flit as the build backend still * Drop tools.flit.metadata block * tool.flit.scripts is incompatible with project block * Remove symlink copy workaround * This seems to cause an error, until I figure it out, license is specified in classifiers. * Make authors a list of dicts * URL correction * Use more of the new style metadata for flit * This is redundant; build downloads these in a venv * project.scripts replaces tool.flit.scripts * whitespace * Try explicitly adding symlinks as includes * Minor whitespacce tweaks * Add newer build packages to ISO * Update comment on python-build.yml
-rw-r--r--.github/workflows/iso-build.yaml2
-rw-r--r--.github/workflows/python-build.yml26
-rw-r--r--.github/workflows/python-publish.yml13
-rw-r--r--pyproject.toml49
4 files changed, 63 insertions, 27 deletions
diff --git a/.github/workflows/iso-build.yaml b/.github/workflows/iso-build.yaml
index d603cdcb..29178ad8 100644
--- a/.github/workflows/iso-build.yaml
+++ b/.github/workflows/iso-build.yaml
@@ -38,7 +38,7 @@ jobs:
- run: cat /tmp/archlive/airootfs/root/.zprofile
- run: pacman -Sy; pacman --noconfirm -S git archiso
- run: cp -r /usr/share/archiso/configs/releng/* /tmp/archlive
- - run: echo -e "git\npython\npython-pip\npython-setuptools" >> /tmp/archlive/packages.x86_64
+ - run: echo -e "git\npython\npython-pip\npython-build\npython-flit\npython-setuptools\npython-wheel" >> /tmp/archlive/packages.x86_64
- run: find /tmp/archlive
- run: cd /tmp/archlive; mkarchiso -v -w work/ -o out/ ./
- uses: actions/upload-artifact@v2
diff --git a/.github/workflows/python-build.yml b/.github/workflows/python-build.yml
new file mode 100644
index 00000000..6196f9d8
--- /dev/null
+++ b/.github/workflows/python-build.yml
@@ -0,0 +1,26 @@
+# This workflow will build Python packages on every commit.
+
+name: Build archinstall
+
+on: [ push, pull_request ]
+
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: '3.x'
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install build twine
+ - name: Build archinstall
+ run: |
+ python -m build
+ - uses: actions/upload-artifact@v2
+ with:
+ name: archinstall
+ path: dist/*
diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml
index 2a261618..3d0ec253 100644
--- a/.github/workflows/python-publish.yml
+++ b/.github/workflows/python-publish.yml
@@ -21,10 +21,13 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
- pip install setuptools wheel flit
- - name: Build and publish
+ pip install build twine
+ - name: Build archinstall
+ run: |
+ python -m build
+ - name: Publish archinstall to PyPi
env:
- FLIT_USERNAME: ${{ secrets.PYPI_USERNAME }}
- FLIT_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
+ TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
+ TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
- flit publish
+ twine upload dist/*
diff --git a/pyproject.toml b/pyproject.toml
index ede37542..cc73b65e 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,35 +1,42 @@
[build-system]
-requires = ["flit_core >=2,<4"]
+requires = ["flit_core >=3.6.0,<4", "setuptools>=45", "wheel"]
build-backend = "flit_core.buildapi"
-[tool.flit.metadata]
-module = "archinstall"
-author = "Anton Hvornum"
-author-email = "anton@hvornum.se"
-home-page = "https://archlinux.org"
-classifiers = [ "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
-"Programming Language :: Python :: 3.8",
-"Programming Language :: Python :: 3.9",
-"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
-"Operating System :: POSIX :: Linux",
+[project]
+name = "archinstall"
+version = "2.4.0"
+description = "Arch Linux installer - guided, templates etc."
+authors = [
+ {name = "Anton Hvornum", email = "anton@hvornum.se"},
]
-description-file = "README.md"
-requires-python=">=3.8"
+readme = "README.md"
+requires-python = ">=3.10"
-[tool.flit.metadata.urls]
-Source = "https://github.com/archlinux/archinstall"
+keywords = ["linux", "arch", "archinstall", "installer"]
+
+classifiers = [
+ "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
+ "Operating System :: POSIX :: Linux",
+]
+
+[project.urls]
+Home = "https://archlinux.org"
Documentation = "https://archinstall.readthedocs.io/"
+Source = "https://github.com/archlinux/archinstall"
-[tool.flit.scripts]
+[project.scripts]
archinstall = "archinstall:run_as_a_module"
-[tool.flit.sdist]
-include = ["docs/","profiles"]
-exclude = ["docs/*.html", "docs/_static","docs/*.png","docs/*.psd"]
-
-[tool.flit.metadata.requires-extra]
+[project.optional-dependencies]
doc = ["sphinx"]
+[tool.flit.sdist]
+include = ["docs/", "profiles", "examples", "archinstall/profiles", "archinstall/examples"]
+exclude = ["docs/*.html", "docs/_static", "docs/*.png", "docs/*.psd"]
+
[tool.mypy]
python_version = "3.10"
exclude = "tests"