Files
python-github-backup/setup.py
Rodos cd23dd1a16 feat: Enforce Python 3.8+ requirement and add multi-version CI testing
- Add python_requires=">=3.8" to setup.py to enforce minimum version at install time
- Update README to explicitly document Python 3.8+ requirement
- Add CI matrix to test lint/build on Python 3.8-3.14 (7 versions)
- Aligns with actual usage patterns (~99% of downloads on Python 3.8+)
- Prevents future PRs from inadvertently using incompatible syntax

This change protects users by preventing installation on unsupported Python
versions and ensures contributors can see version requirements clearly.
2025-11-04 10:47:13 +11:00

56 lines
1.6 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from github_backup import __version__
try:
from setuptools import setup
setup # workaround for pyflakes issue #13
except ImportError:
from distutils.core import setup
# Hack to prevent stupid TypeError: 'NoneType' object is not callable error on
# exit of python setup.py test # in multiprocessing/util.py _exit_function when
# running python setup.py test (see
# http://www.eby-sarna.com/pipermail/peak/2010-May/003357.html)
try:
import multiprocessing
multiprocessing
except ImportError:
pass
def open_file(fname):
return open(os.path.join(os.path.dirname(__file__), fname))
setup(
name="github-backup",
version=__version__,
author="Jose Diaz-Gonzalez",
author_email="github-backup@josediazgonzalez.com",
packages=["github_backup"],
scripts=["bin/github-backup"],
url="http://github.com/josegonzalez/python-github-backup",
license="MIT",
classifiers=[
"Development Status :: 5 - Production/Stable",
"Topic :: System :: Archiving :: Backup",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
],
description="backup a github user or organization",
long_description=open_file("README.rst").read(),
long_description_content_type="text/x-rst",
install_requires=open_file("requirements.txt").readlines(),
python_requires=">=3.8",
zip_safe=True,
)