mirror of
https://github.com/borgbackup/borg.git
synced 2025-03-09 21:57:24 +00:00
Merge pull request #7997 from ThomasWaldmann/move-to-pyproj-1.4
move to pyproject.toml (1.4-maint)
This commit is contained in:
commit
4f958ab5fe
7 changed files with 175 additions and 192 deletions
13
.github/workflows/ci.yml
vendored
13
.github/workflows/ci.yml
vendored
|
@ -31,19 +31,12 @@ on:
|
|||
jobs:
|
||||
lint:
|
||||
|
||||
runs-on: ubuntu-20.04
|
||||
timeout-minutes: 10
|
||||
runs-on: ubuntu-22.04
|
||||
timeout-minutes: 2
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.9
|
||||
- name: Lint with flake8
|
||||
run: |
|
||||
pip install flake8
|
||||
flake8 src scripts conftest.py
|
||||
- uses: chartboost/ruff-action@v1
|
||||
|
||||
pytest:
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
repos:
|
||||
- repo: https://github.com/pycqa/flake8
|
||||
rev: 6.0.0
|
||||
hooks:
|
||||
- id: flake8
|
||||
files: '(src|scripts|conftest.py)'
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
rev: v0.0.287
|
||||
hooks:
|
||||
- id: ruff
|
||||
|
|
|
@ -12,8 +12,10 @@
|
|||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
import sys, os
|
||||
sys.path.insert(0, os.path.abspath('../src'))
|
||||
import sys
|
||||
import os
|
||||
|
||||
sys.path.insert(0, os.path.abspath("../src"))
|
||||
|
||||
from borg import __version__ as sw_version
|
||||
|
||||
|
|
158
pyproject.toml
158
pyproject.toml
|
@ -1,3 +1,76 @@
|
|||
[project]
|
||||
name = "borgbackup"
|
||||
dynamic = ["version"]
|
||||
authors = [{name="The Borg Collective (see AUTHORS file)"}]
|
||||
maintainers = [
|
||||
{name="Thomas Waldmann", email="tw@waldmann-edv.de"},
|
||||
]
|
||||
description = "Deduplicated, encrypted, authenticated and compressed backups"
|
||||
readme = "README.rst"
|
||||
requires-python = ">=3.9"
|
||||
keywords = ["backup", "borgbackup"]
|
||||
classifiers = [
|
||||
"Development Status :: 4 - Beta",
|
||||
"Environment :: Console",
|
||||
"Intended Audience :: System Administrators",
|
||||
"License :: OSI Approved :: BSD License",
|
||||
"Operating System :: POSIX :: BSD :: FreeBSD",
|
||||
"Operating System :: POSIX :: BSD :: OpenBSD",
|
||||
"Operating System :: POSIX :: BSD :: NetBSD",
|
||||
"Operating System :: MacOS :: MacOS X",
|
||||
"Operating System :: POSIX :: Linux",
|
||||
"Programming Language :: Python",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.9",
|
||||
"Programming Language :: Python :: 3.10",
|
||||
"Programming Language :: Python :: 3.11",
|
||||
"Programming Language :: Python :: 3.12",
|
||||
"Topic :: Security :: Cryptography",
|
||||
"Topic :: System :: Archiving :: Backup",
|
||||
]
|
||||
license = {text="BSD"}
|
||||
dependencies = [
|
||||
# we are rather picky about msgpack versions, because a good working msgpack is
|
||||
# very important for borg, see: https://github.com/borgbackup/borg/issues/3753
|
||||
# Please note:
|
||||
# using any other msgpack version is not supported by borg development and
|
||||
# any feedback related to issues caused by this will be ignored.
|
||||
"msgpack >=1.0.3, <=1.0.7",
|
||||
"packaging",
|
||||
]
|
||||
|
||||
# note for package maintainers: if you package borgbackup for distribution,
|
||||
# please (if available) add pyfuse3 (preferably) or llfuse as a *requirement*.
|
||||
# "borg mount" needs one of them to work.
|
||||
# if neither is available, do not require it, most of borgbackup will work.
|
||||
[project.optional-dependencies]
|
||||
llfuse = ["llfuse >= 1.3.8"]
|
||||
pyfuse3 = ["pyfuse3 >= 3.1.1"]
|
||||
nofuse = []
|
||||
|
||||
[project.urls]
|
||||
"Homepage" = "https://borgbackup.org/"
|
||||
"Bug Tracker" = "https://github.com/borgbackup/borg/issues"
|
||||
"Documentation" = "https://borgbackup.readthedocs.io/"
|
||||
"Repository" = "https://github.com/borgbackup/borg"
|
||||
"Changelog" = "https://github.com/borgbackup/borg/blob/1.4-maint/docs/changes.rst"
|
||||
|
||||
[project.scripts]
|
||||
borg = "borg.archiver:main"
|
||||
borgfs = "borg.archiver:main"
|
||||
|
||||
[tool.setuptools]
|
||||
# See also the MANIFEST.in file.
|
||||
# We want to install all the files in the package directories...
|
||||
include-package-data = true
|
||||
|
||||
[tool.setuptools.packages.find]
|
||||
where = ["src"]
|
||||
|
||||
[tool.setuptools.exclude-package-data]
|
||||
# ...except the source files which have been compiled (C extensions):
|
||||
"*" = ["*.c", "*.h", "*.pyx"]
|
||||
|
||||
[build-system]
|
||||
requires = ["setuptools>=64", "setuptools_scm>=8", "wheel", "pkgconfig", "Cython>=3"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
@ -8,3 +81,88 @@ build-backend = "setuptools.build_meta"
|
|||
# https://github.com/borgbackup/borg/issues/6875
|
||||
write_to = "src/borg/_version.py"
|
||||
write_to_template = "__version__ = version = {version!r}\n"
|
||||
|
||||
[tool.ruff]
|
||||
line-length = 120
|
||||
target-version = "py39"
|
||||
|
||||
# Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default.
|
||||
select = ["E", "F"]
|
||||
|
||||
# for reference ...
|
||||
# E402 module level import not at top
|
||||
# E501 line too long
|
||||
# F401 import unused
|
||||
# F405 undefined or defined from star imports
|
||||
# F811 redef of unused var
|
||||
|
||||
# borg code style guidelines:
|
||||
# Ignoring E203 due to https://github.com/PyCQA/pycodestyle/issues/373
|
||||
ignore = ["E203", "F405", "E402"]
|
||||
|
||||
# Allow autofix for all enabled rules (when `--fix`) is provided.
|
||||
fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TCH", "TID", "TRY", "UP", "YTT"]
|
||||
unfixable = []
|
||||
|
||||
# Exclude a variety of commonly ignored directories.
|
||||
exclude = [
|
||||
".cache",
|
||||
".eggs",
|
||||
".git",
|
||||
".git-rewrite",
|
||||
".idea",
|
||||
".mypy_cache",
|
||||
".ruff_cache",
|
||||
".tox",
|
||||
"build",
|
||||
"dist",
|
||||
]
|
||||
|
||||
# Allow unused variables when underscore-prefixed.
|
||||
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
||||
|
||||
# Code style violation exceptions:
|
||||
# please note that the values are adjusted so that they do not cause failures
|
||||
# with existing code. if you want to change them, you should first fix all
|
||||
# ruff failures that appear with your change.
|
||||
[tool.ruff.per-file-ignores]
|
||||
"setup.py" = ["E501"]
|
||||
"setup_docs.py" = ["E501"]
|
||||
"src/borg/archive.py" = ["E501", "F401"]
|
||||
"src/borg/archiver.py" = ["E501", "F401", "E722", "E741"]
|
||||
"src/borg/cache.py" = ["E501", "E722"]
|
||||
"src/borg/crypto/key.py" = ["E501", "F401"]
|
||||
"src/borg/crypto/keymanager.py" = ["E501", "F401"]
|
||||
"src/borg/crypto/nonces.py" = ["E501"]
|
||||
"src/borg/fuse.py" = ["E501", "E722"]
|
||||
"src/borg/fuse_impl.py" = ["F811"]
|
||||
"src/borg/helpers/__init__.py" = ["F401"]
|
||||
"src/borg/helpers/checks.py" = ["F401"]
|
||||
"src/borg/helpers/manifest.py" = ["E501"]
|
||||
"src/borg/helpers/misc.py" = ["F401", "E722"]
|
||||
"src/borg/helpers/parseformat.py" = ["E501", "F401", "E741"]
|
||||
"src/borg/helpers/process.py" = ["F401"]
|
||||
"src/borg/locking.py" = ["E501", "E722"]
|
||||
"src/borg/platform/__init__.py" = ["F401", "F811"]
|
||||
"src/borg/remote.py" = ["E501"]
|
||||
"src/borg/repository.py" = ["E501", "F401"]
|
||||
"src/borg/shellpattern.py" = ["E501"]
|
||||
"src/borg/testsuite/__init__.py" = ["E501", "F401"]
|
||||
"src/borg/testsuite/archiver.py" = ["E501", "E722", "F401"]
|
||||
"src/borg/testsuite/benchmark.py" = ["F811", "F401"]
|
||||
"src/borg/testsuite/chunker.py" = ["E501"]
|
||||
"src/borg/testsuite/crypto.py" = ["E501", "E741"]
|
||||
"src/borg/testsuite/file_integrity.py" = ["F401"]
|
||||
"src/borg/testsuite/hashindex.py" = ["F401"]
|
||||
"src/borg/testsuite/helpers.py" = ["E501"]
|
||||
"src/borg/testsuite/key.py" = ["F401"]
|
||||
"src/borg/testsuite/locking.py" = ["E501", "E722", "F401"]
|
||||
"src/borg/testsuite/platform.py" = ["E501", "F811", "F401"]
|
||||
"src/borg/testsuite/repository.py" = ["E501", "F401"]
|
||||
"src/borg/upgrader.py" = ["E501"]
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
python_files = "testsuite/*.py"
|
||||
markers = [
|
||||
"allow_cache_wipe",
|
||||
]
|
||||
|
|
93
setup.cfg
93
setup.cfg
|
@ -1,93 +0,0 @@
|
|||
[tool:pytest]
|
||||
python_files = testsuite/*.py
|
||||
markers =
|
||||
allow_cache_wipe
|
||||
|
||||
[flake8]
|
||||
# for reference ...
|
||||
# E121 continuation line under-indented for hanging indent
|
||||
# E122 continuation line missing indentation or outdented
|
||||
# E123 closing bracket does not match indentation of opening bracket's line
|
||||
# E125 continuation line with same indent as next logical line
|
||||
# E126 continuation line over-indented for hanging indent
|
||||
# E127 continuation line over-indented for visual indent
|
||||
# E128 continuation line under-indented for visual indent
|
||||
# E221 multiple spaces before operator
|
||||
# E226 missing whitespace around arithmetic operator
|
||||
# E261 at least two spaces before inline comment
|
||||
# E265 block comment should start with '# '
|
||||
# E301 expected 1 blank line
|
||||
# E305 expected 2 blank lines after class or function definition
|
||||
# E401 multiple imports on one line
|
||||
# E402 module level import not at top
|
||||
# E501 line too long
|
||||
# E722 do not use bare except
|
||||
# E731 do not assign a lambda expression, use def
|
||||
# E741 ambiguous variable name
|
||||
# F401 import unused
|
||||
# F403 from ... import * used, unable to detect undefined names
|
||||
# F405 undefined or defined from star imports
|
||||
# F811 redef of unused var
|
||||
# F821 undefined name
|
||||
# W391 blank line at end of file
|
||||
# #### Pick either W503, or W504 - latest recommendation from pep8 is to ignore W503
|
||||
# W503 line break before binary operator
|
||||
# W504 line break after binary operator
|
||||
|
||||
# borg code style guidelines:
|
||||
ignore = E226, W503
|
||||
|
||||
# Code style violation exceptions:
|
||||
# please note that the values are adjusted so that they do not cause failures
|
||||
# with existing code. if you want to change them, you should first fix all
|
||||
# flake8 failures that appear with your change.
|
||||
per_file_ignores =
|
||||
docs/conf.py:E121,E126,E265,E305,E401,E402
|
||||
src/borg/archive.py:E122,E125,E127,E402,E501,F401,F405,W504
|
||||
src/borg/archiver.py:E125,E126,E127,E128,E501,E722,E731,E741,F401,F405,W504
|
||||
src/borg/cache.py:E127,E128,E402,E501,E722,W504
|
||||
src/borg/fuse.py:E402,E501,E722,W504
|
||||
src/borg/fuse_impl.py:F811
|
||||
src/borg/locking.py:E128,E501,E722
|
||||
src/borg/remote.py:E128,E501,F405
|
||||
src/borg/repository.py:E126,E128,E501,F401,F405,W504
|
||||
src/borg/shellpattern.py:E501
|
||||
src/borg/upgrader.py:E501
|
||||
src/borg/xattr.py:E402
|
||||
src/borg/crypto/key.py:E125,E128,E402,E501,F401,F405,W504
|
||||
src/borg/crypto/keymanager.py:E126,E128,E501,F401
|
||||
src/borg/crypto/nonces.py:E128,E501
|
||||
src/borg/helpers/__init__.py:F401,F405
|
||||
src/borg/helpers/checks.py:F401
|
||||
src/borg/helpers/errors.py:F405
|
||||
src/borg/helpers/fs.py:F405
|
||||
src/borg/helpers/manifest.py:E128,E402,E501,F405
|
||||
src/borg/helpers/misc.py:E402,E722,F401,F405
|
||||
src/borg/helpers/msgpack.py:E127,F405
|
||||
src/borg/helpers/parseformat.py:E402,E501,E741,F401,F405
|
||||
src/borg/helpers/process.py:E402,F401,W504
|
||||
src/borg/helpers/progress.py:E402
|
||||
src/borg/platform/__init__.py:F401,F811
|
||||
src/borg/platform/base.py:E402
|
||||
src/borg/testsuite/__init__.py:E501,F401
|
||||
src/borg/testsuite/archive.py:E128,W504
|
||||
src/borg/testsuite/archiver.py:E128,E501,E722,F401,F405,F811
|
||||
src/borg/testsuite/benchmark.py:F401,F811
|
||||
src/borg/testsuite/chunker.py:E501,F405
|
||||
src/borg/testsuite/chunker_pytest.py:F401
|
||||
src/borg/testsuite/chunker_slow.py:F405
|
||||
src/borg/testsuite/crypto.py:E126,E501,E741
|
||||
src/borg/testsuite/file_integrity.py:F401
|
||||
src/borg/testsuite/hashindex.py:F401
|
||||
src/borg/testsuite/helpers.py:E126,E127,E128,E501,F401
|
||||
src/borg/testsuite/key.py:E501,F401
|
||||
src/borg/testsuite/locking.py:E126,E128,E501,E722,F401
|
||||
src/borg/testsuite/patterns.py:E123
|
||||
src/borg/testsuite/platform.py:E128,E501,F401,F811
|
||||
src/borg/testsuite/repository.py:E128,E501,F401
|
||||
src/borg/testsuite/shellpattern.py:E123
|
||||
src/borg/testsuite/upgrader.py:F405
|
||||
|
||||
max_line_length = 120
|
||||
exclude = build,dist,.git,.idea,.cache,.tox
|
||||
|
82
setup.py
82
setup.py
|
@ -1,4 +1,4 @@
|
|||
# borgbackup - main setup code (see also other setup_*.py files)
|
||||
# borgbackup - main setup code (see also pyproject.toml and other setup_*.py files)
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
@ -11,7 +11,7 @@ except ImportError:
|
|||
multiprocessing = None
|
||||
|
||||
from setuptools.command.build_ext import build_ext
|
||||
from setuptools import setup, find_namespace_packages, Extension, Command
|
||||
from setuptools import setup, Extension, Command
|
||||
from setuptools.command.sdist import sdist
|
||||
|
||||
try:
|
||||
|
@ -64,30 +64,6 @@ cpu_threads = multiprocessing.cpu_count() if multiprocessing and multiprocessing
|
|||
# Are we building on ReadTheDocs?
|
||||
on_rtd = os.environ.get('READTHEDOCS')
|
||||
|
||||
install_requires = [
|
||||
# we are rather picky about msgpack versions, because a good working msgpack is
|
||||
# very important for borg, see: https://github.com/borgbackup/borg/issues/3753
|
||||
# Please note:
|
||||
# using any other msgpack version is not supported by borg development and
|
||||
# any feedback related to issues caused by this will be ignored.
|
||||
'msgpack >=1.0.2, <=1.0.7',
|
||||
'packaging',
|
||||
]
|
||||
|
||||
# note for package maintainers: if you package borgbackup for distribution,
|
||||
# please (if available) add pyfuse3 (preferably) or llfuse (not maintained any more)
|
||||
# as a *requirement*. "borg mount" needs one of them to work.
|
||||
# if neither is available, do not require it, most of borgbackup will work.
|
||||
extras_require = {
|
||||
'llfuse': [
|
||||
'llfuse >= 1.3.8',
|
||||
],
|
||||
'pyfuse3': [
|
||||
'pyfuse3 >= 3.1.1',
|
||||
],
|
||||
'nofuse': [],
|
||||
}
|
||||
|
||||
# Extra cflags for all extensions, usually just warnings we want to explicitly enable
|
||||
cflags = [
|
||||
'-Wall',
|
||||
|
@ -257,56 +233,4 @@ if not on_rtd:
|
|||
# generate C code from Cython for THIS platform (and for all platform-independent Cython parts).
|
||||
ext_modules = cythonize(ext_modules, **cython_opts)
|
||||
|
||||
# make sure we have the same versioning scheme with all setuptools_scm versions, to avoid different autogenerated files
|
||||
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1015052
|
||||
# https://github.com/borgbackup/borg/issues/6875
|
||||
setup(
|
||||
name='borgbackup',
|
||||
author='The Borg Collective (see AUTHORS file)',
|
||||
author_email='borgbackup@python.org',
|
||||
url='https://borgbackup.readthedocs.io/',
|
||||
description='Deduplicated, encrypted, authenticated and compressed backups',
|
||||
long_description=setup_docs.long_desc_from_readme(),
|
||||
license='BSD',
|
||||
platforms=['Linux', 'MacOS X', 'FreeBSD', 'OpenBSD', 'NetBSD', ],
|
||||
classifiers=[
|
||||
'Development Status :: 4 - Beta',
|
||||
'Environment :: Console',
|
||||
'Intended Audience :: System Administrators',
|
||||
'License :: OSI Approved :: BSD License',
|
||||
'Operating System :: POSIX :: BSD :: FreeBSD',
|
||||
'Operating System :: POSIX :: BSD :: OpenBSD',
|
||||
'Operating System :: POSIX :: BSD :: NetBSD',
|
||||
'Operating System :: MacOS :: MacOS X',
|
||||
'Operating System :: POSIX :: Linux',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
'Programming Language :: Python :: 3.12',
|
||||
'Topic :: Security :: Cryptography',
|
||||
'Topic :: System :: Archiving :: Backup',
|
||||
],
|
||||
packages=find_namespace_packages('src'),
|
||||
package_dir={'': 'src'},
|
||||
zip_safe=False,
|
||||
entry_points={
|
||||
'console_scripts': [
|
||||
'borg = borg.archiver:main',
|
||||
'borgfs = borg.archiver:main',
|
||||
]
|
||||
},
|
||||
# See also the MANIFEST.in file.
|
||||
# We want to install all the files in the package directories...
|
||||
include_package_data=True,
|
||||
# ...except the source files which have been compiled (C extensions):
|
||||
exclude_package_data={
|
||||
'': ['*.c', '*.h', '*.pyx', ],
|
||||
},
|
||||
cmdclass=cmdclass,
|
||||
ext_modules=ext_modules,
|
||||
install_requires=install_requires,
|
||||
extras_require=extras_require,
|
||||
python_requires='>=3.9',
|
||||
)
|
||||
setup(cmdclass=cmdclass, ext_modules=ext_modules, long_description=setup_docs.long_desc_from_readme())
|
||||
|
|
6
tox.ini
6
tox.ini
|
@ -25,10 +25,10 @@ passenv = *
|
|||
passenv = * # needed by tox4, so env vars are visible for building borg
|
||||
|
||||
|
||||
[testenv:flake8]
|
||||
[testenv:ruff]
|
||||
skip_sdist=true
|
||||
skip_install=true
|
||||
changedir =
|
||||
deps =
|
||||
flake8
|
||||
commands = flake8 src scripts conftest.py
|
||||
ruff
|
||||
commands = ruff check .
|
||||
|
|
Loading…
Add table
Reference in a new issue