Browse Source

Merge pull request #7857 from ThomasWaldmann/misc-updates-1.2

misc. updates (1.2-maint)
TW 1 năm trước cách đây
mục cha
commit
bc553b1258

+ 1 - 1
.github/workflows/ci.yml

@@ -65,7 +65,7 @@ jobs:
               python-version: '3.11'
               toxenv: py311-fuse2
             - os: ubuntu-22.04
-              python-version: '3.12-dev'
+              python-version: '3.12'
               toxenv: py312-fuse3
             - os: macos-12
               python-version: '3.8'

+ 4 - 3
Vagrantfile

@@ -158,6 +158,7 @@ end
 def install_pythons(boxname)
   return <<-EOF
     . ~/.bash_profile
+    pyenv install 3.12.0  # tests, version supporting openssl 1.1
     pyenv install 3.11.1  # tests, version supporting openssl 1.1
     pyenv install 3.10.2  # tests, version supporting openssl 1.1
     pyenv install 3.9.18  # tests, version supporting openssl 1.1, binary build
@@ -226,8 +227,8 @@ def run_tests(boxname, skip_env)
     . ../borg-env/bin/activate
     if which pyenv 2> /dev/null; then
       # for testing, use the earliest point releases of the supported python versions:
-      pyenv global 3.9.18 3.10.2 3.11.1
-      pyenv local 3.9.18 3.10.2 3.11.1
+      pyenv global 3.9.18 3.10.2 3.11.1 3.12.0
+      pyenv local 3.9.18 3.10.2 3.11.1 3.12.0
     fi
     # otherwise: just use the system python
     # avoid that git complains about dubious ownership if we use fakeroot:
@@ -343,7 +344,7 @@ Vagrant.configure(2) do |config|
   end
 
   config.vm.define "stretch64" do |b|
-    b.vm.box = "debian/stretch64"
+    b.vm.box = "generic/debian9"
     b.vm.provider :virtualbox do |v|
       v.memory = 1024 + $wmem
     end

+ 1 - 1
pyproject.toml

@@ -1,3 +1,3 @@
 [build-system]
-requires = ["setuptools", "wheel", "pkgconfig", "Cython", "setuptools_scm>=1.7,<8"]
+requires = ["setuptools", "wheel", "pkgconfig", "Cython", "setuptools_scm>=1.7"]
 build-backend = "setuptools.build_meta"

+ 8 - 8
requirements.d/development.lock.txt

@@ -1,12 +1,12 @@
-setuptools==65.6.3
-setuptools-scm==7.1.0
-pip==22.3.1
-virtualenv==20.17.1
+setuptools==68.2.2
+setuptools-scm==8.0.4
+pip==23.2.1
+virtualenv==20.24.5
 pkgconfig==1.5.5
-tox==4.0.18
-pytest==7.2.0
-pytest-xdist==3.1.0
-pytest-cov==4.0.0
+tox==4.11.3
+pytest==7.4.2
+pytest-xdist==3.3.1
+pytest-cov==4.1.0
 pytest-benchmark==4.0.0
 Cython==0.29.36
 python-dateutil==2.8.2

+ 1 - 1
requirements.d/development.txt

@@ -1,5 +1,5 @@
 setuptools >=45, !=60.6.0, !=60.7.0
-setuptools_scm <8
+setuptools_scm
 pip
 virtualenv
 pkgconfig

+ 3 - 5
setup_docs.py

@@ -6,7 +6,7 @@ import re
 import sys
 import textwrap
 from collections import OrderedDict
-from datetime import datetime
+from datetime import datetime, timezone
 import time
 
 from setuptools import Command
@@ -460,10 +460,8 @@ class build_man(Command):
         self.write_heading(write, description, double_sided=True)
         # man page metadata
         write(':Author: The Borg Collective')
-        write(
-            ':Date:',
-            datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))).date().isoformat(),
-        )
+        source_date_epoch = int(os.environ.get("SOURCE_DATE_EPOCH", time.time()))
+        write(':Date:', datetime.fromtimestamp(source_date_epoch, timezone.utc).date().isoformat())
         write(':Manual section: 1')
         write(':Manual group: borg backup tool')
         write()

+ 11 - 6
src/borg/testsuite/helpers.py

@@ -1084,6 +1084,11 @@ def test_swidth_slice_mixed_characters():
     assert swidth_slice(string, 6) == '나윤a'
 
 
+def utcfromtimestamp(timestamp):
+    """Returns a naive datetime instance representing the timestamp in the UTC timezone"""
+    return datetime.fromtimestamp(timestamp, timezone.utc).replace(tzinfo=None)
+
+
 def test_safe_timestamps():
     if SUPPORT_32BIT_PLATFORMS:
         # ns fit into int64
@@ -1095,9 +1100,9 @@ def test_safe_timestamps():
         # datetime won't fall over its y10k problem
         beyond_y10k = 2 ** 100
         with pytest.raises(OverflowError):
-            datetime.utcfromtimestamp(beyond_y10k)
-        assert datetime.utcfromtimestamp(safe_s(beyond_y10k)) > datetime(2038, 1, 1)
-        assert datetime.utcfromtimestamp(safe_ns(beyond_y10k) / 1000000000) > datetime(2038, 1, 1)
+            utcfromtimestamp(beyond_y10k)
+        assert utcfromtimestamp(safe_s(beyond_y10k)) > datetime(2038, 1, 1)
+        assert utcfromtimestamp(safe_ns(beyond_y10k) / 1000000000) > datetime(2038, 1, 1)
     else:
         # ns fit into int64
         assert safe_ns(2 ** 64) <= 2 ** 63 - 1
@@ -1108,9 +1113,9 @@ def test_safe_timestamps():
         # datetime won't fall over its y10k problem
         beyond_y10k = 2 ** 100
         with pytest.raises(OverflowError):
-            datetime.utcfromtimestamp(beyond_y10k)
-        assert datetime.utcfromtimestamp(safe_s(beyond_y10k)) > datetime(2262, 1, 1)
-        assert datetime.utcfromtimestamp(safe_ns(beyond_y10k) / 1000000000) > datetime(2262, 1, 1)
+            utcfromtimestamp(beyond_y10k)
+        assert utcfromtimestamp(safe_s(beyond_y10k)) > datetime(2262, 1, 1)
+        assert utcfromtimestamp(safe_ns(beyond_y10k) / 1000000000) > datetime(2262, 1, 1)
 
 
 class TestPopenWithErrorHandling: