Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-svneverever for 
openSUSE:Factory checked in at 2023-07-17 19:24:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-svneverever (Old)
 and      /work/SRC/openSUSE:Factory/.python-svneverever.new.3193 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-svneverever"

Mon Jul 17 19:24:54 2023 rev:4 rq:1098911 version:1.7.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-svneverever/python-svneverever.changes    
2022-10-18 12:45:40.169815206 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-svneverever.new.3193/python-svneverever.changes
  2023-07-17 19:24:55.174305059 +0200
@@ -1,0 +2,10 @@
+Sun Jul 16 09:03:30 UTC 2023 - Dirk Müller <dmuel...@suse.com>
+
+- update to 1.7.2:
+  * Actions: Create pull requests from pre-commit autoupdate
+    output
+  * Drop support for end-of-life Python <=3.6
+  * Pin GitHub Actions to specific commits for security
+  * Handle use of non-root repository path gracefully (fixes #74)
+
+-------------------------------------------------------------------

Old:
----
  v1.7.1.tar.gz

New:
----
  v1.7.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-svneverever.spec ++++++
--- /var/tmp/diff_new_pack.rDLtbs/_old  2023-07-17 19:24:56.502312752 +0200
+++ /var/tmp/diff_new_pack.rDLtbs/_new  2023-07-17 19:24:56.510312799 +0200
@@ -21,7 +21,7 @@
 %define oldpython python
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 Name:           python-svneverever
-Version:        1.7.1
+Version:        1.7.2
 Release:        0
 Summary:        Tool collecting path entries across SVN history
 License:        GPL-3.0-only

++++++ v1.7.1.tar.gz -> v1.7.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/svneverever-1.7.1/.github/dependabot.yml 
new/svneverever-1.7.2/.github/dependabot.yml
--- old/svneverever-1.7.1/.github/dependabot.yml        1970-01-01 
01:00:00.000000000 +0100
+++ new/svneverever-1.7.2/.github/dependabot.yml        2023-06-19 
12:38:33.000000000 +0200
@@ -0,0 +1,12 @@
+version: 2
+updates:
+
+  - package-ecosystem: "github-actions"
+    commit-message:
+      include: "scope"
+      prefix: "Actions"
+    directory: "/"
+    labels:
+      - "enhancement"
+    schedule:
+      interval: "weekly"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/svneverever-1.7.1/.github/workflows/pre-commit-detect-outdated.yml 
new/svneverever-1.7.2/.github/workflows/pre-commit-detect-outdated.yml
--- old/svneverever-1.7.1/.github/workflows/pre-commit-detect-outdated.yml      
1970-01-01 01:00:00.000000000 +0100
+++ new/svneverever-1.7.2/.github/workflows/pre-commit-detect-outdated.yml      
2023-06-19 12:38:33.000000000 +0200
@@ -0,0 +1,62 @@
+# Copyright (c) 2022 Sebastian Pipping <sebast...@pipping.org>
+# Licensed under GNU General Public License version 3.0 or later
+
+name: Detect outdated pre-commit hooks
+
+on:
+  schedule:
+    - cron: '0 16 * * 5'  # Every Friday 4pm
+
+# NOTE: This will drop all permissions from GITHUB_TOKEN except metadata read,
+#       and then (re)add the ones listed below:
+permissions:
+  contents: write
+  pull-requests: write
+
+jobs:
+  pre_commit_detect_outdated:
+    name: Detect outdated pre-commit hooks
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9  # 
v3.5.3
+
+      - name: Set up Python 3.10
+        uses: actions/setup-python@bd6b4b6205c4dbad673328db7b31b7fab9e241c0  # 
v4.6.1
+        with:
+          python-version: '3.10'
+
+      - name: Install pre-commit
+        run: |-
+          pip install \
+            --disable-pip-version-check \
+            --no-warn-script-location \
+            --user \
+            pre-commit
+          echo "PATH=${HOME}/.local/bin:${PATH}" >> "${GITHUB_ENV}"
+
+      - name: Check for outdated hooks
+        run: |-
+          pre-commit autoupdate
+          git diff -- .pre-commit-config.yaml
+
+      - name: Create pull request from changes (if any)
+        id: create-pull-request
+        uses: 
peter-evans/create-pull-request@284f54f989303d2699d373481a0cfa13ad5a6666  # 
v5.0.1
+        with:
+          author: 'pre-commit <pre-commit@tools.invalid>'
+          base: master
+          body: |-
+            For your consideration.
+
+            :warning: Please **CLOSE AND RE-OPEN** this pull request so that 
[further workflow runs get 
triggered](https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs)
 for this pull request.
+          branch: precommit-autoupdate
+          commit-message: "pre-commit: Autoupdate"
+          delete-branch: true
+          draft: true
+          labels: enhancement
+          title: "pre-commit: Autoupdate"
+
+      - name: Log pull request URL
+        if: "${{ steps.create-pull-request.outputs.pull-request-url }}"
+        run: |
+          echo "Pull request URL is: ${{ 
steps.create-pull-request.outputs.pull-request-url }}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/svneverever-1.7.1/.github/workflows/pre-commit-run.yml 
new/svneverever-1.7.2/.github/workflows/pre-commit-run.yml
--- old/svneverever-1.7.1/.github/workflows/pre-commit-run.yml  1970-01-01 
01:00:00.000000000 +0100
+++ new/svneverever-1.7.2/.github/workflows/pre-commit-run.yml  2023-06-19 
12:38:33.000000000 +0200
@@ -0,0 +1,37 @@
+# Copyright (c) 2022 Sebastian Pipping <sebast...@pipping.org>
+# Licensed under GNU General Public License version 3.0 or later
+
+name: Run pre-commit on all files
+
+on:
+- pull_request
+- push
+
+jobs:
+  run_pre_commit:
+    name: Run pre-commit on all files
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9  # 
v3.5.3
+
+      - name: Set up Python 3.9
+        uses: actions/setup-python@bd6b4b6205c4dbad673328db7b31b7fab9e241c0  # 
v4.6.1
+        with:
+          python-version: 3.9
+
+      - name: Install pre-commit
+        run: |-
+          pip install \
+            --disable-pip-version-check \
+            --user \
+            --no-warn-script-location \
+            pre-commit
+          echo "PATH=${HOME}/.local/bin:${PATH}" >> "${GITHUB_ENV}"
+
+      - name: Install pre-commit hooks
+        run: |-
+          pre-commit install --install-hooks
+
+      - name: Run pre-commit on all files
+        run: |-
+          pre-commit run --all-files
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/svneverever-1.7.1/.github/workflows/run-tests.yml 
new/svneverever-1.7.2/.github/workflows/run-tests.yml
--- old/svneverever-1.7.1/.github/workflows/run-tests.yml       1970-01-01 
01:00:00.000000000 +0100
+++ new/svneverever-1.7.2/.github/workflows/run-tests.yml       2023-06-19 
12:38:33.000000000 +0200
@@ -0,0 +1,45 @@
+# Copyright (c) 2023 Sebastian Pipping <sebast...@pipping.org>
+# Licensed under GNU General Public License version 3.0 or later
+
+name: Run tests
+
+# Drop permissions to minimum for security
+permissions:
+  contents: read
+
+on:
+  pull_request:
+  push:
+  schedule:
+    - cron: '0 16 * * 5'  # Every Friday 4pm
+  workflow_dispatch:
+
+jobs:
+  run_tests:
+    name: Run tests
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9  # 
v3.5.3
+
+      - name: Install runtime dependencies
+        run: |-
+          sudo apt-get update
+          sudo apt-get install --yes --no-install-recommends -V \
+              python3-svn
+
+      - name: Install svneverever
+        run: |-
+          pip3 install \
+            --disable-pip-version-check \
+            --user \
+            --no-warn-script-location \
+            -e \
+            .
+          echo "PATH=${HOME}/.local/bin:${PATH}" >> "${GITHUB_ENV}"
+
+      - name: Smoke test
+        run: |-
+          set -x
+          svnadmin create bs2b_svn_store
+          time sh -c 'svnrdump dump svn://svn.code.sf.net/p/bs2b/code/ | 
svnadmin load bs2b_svn_store/'
+          svneverever bs2b_svn_store/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/svneverever-1.7.1/.pre-commit-config.yaml 
new/svneverever-1.7.2/.pre-commit-config.yaml
--- old/svneverever-1.7.1/.pre-commit-config.yaml       2021-07-09 
00:50:45.000000000 +0200
+++ new/svneverever-1.7.2/.pre-commit-config.yaml       2023-06-19 
12:38:33.000000000 +0200
@@ -1,19 +1,25 @@
 repos:
+  - repo: https://github.com/PyCQA/flake8
+    rev:  6.0.0
+    hooks:
+      - id: flake8
+
   - repo: https://github.com/asottile/pyupgrade
-    rev: v2.19.4
+    rev: v3.6.0
     hooks:
       - id: pyupgrade
+        args: ['--py37-plus']
 
   - repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v2.5.0
+    rev: v4.4.0
     hooks:
       - id: check-merge-conflict
+      - id: check-yaml
       - id: end-of-file-fixer
-      - id: flake8
       - id: trailing-whitespace
 
-  - repo: https://github.com/pre-commit/mirrors-isort
-    rev: v5.9.1
+  - repo: https://github.com/pycqa/isort
+    rev: 5.12.0
     hooks:
       - id: isort
         exclude: '^setup\.py$'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/svneverever-1.7.1/README.md 
new/svneverever-1.7.2/README.md
--- old/svneverever-1.7.1/README.md     2021-07-09 00:50:45.000000000 +0200
+++ new/svneverever-1.7.2/README.md     2023-06-19 12:38:33.000000000 +0200
@@ -1,3 +1,6 @@
+[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit)](https://github.com/pre-commit/pre-commit)
+
+
 # About
 **svneverever** helps you inspect the structure of a SVN repository and the 
changes made to it over time. Its most common use is in combination with 
[svn-all-fast-export](https://github.com/svn-all-fast-export/svn2git) (or 
"KDE's svn2git" if you wish).
 
@@ -5,7 +8,7 @@
 # Installation
 
 ## Dependencies
-**svneverever** requires Python 3.6 or higher
+**svneverever** requires Python 3.7 or higher
 and [PySVN](https://pysvn.sourceforge.io/)
 (the one on SourceForge, not the one on PyPI).
 If you want to install **svneverever** with **pip** you need a few additional 
packages.
@@ -39,9 +42,25 @@
 # Usage
 **svneverever** needs the "server-side" of the repository with full history. 
There are two ways to obtain this. Let's take the SVN history of [headphone 
effect library bs2b](http://bs2b.sourceforge.net/) as an example.
 
-The first way is to directly point **svneverever** to the server `svneverever 
svn://svn.code.sf.net/p/bs2b/code/`. However this is slow and it puts a lot of 
stress on the server.
+The first way is to directly point **svneverever** to the server `svneverever 
svn://svn.code.sf.net/p/bs2b/code/`. However this is slow and it puts a lot of 
stress on the server, and will be little fun to run multiple times.
+
+The second and recommended method is first downloading the history with
+`svnrdump dump` (that comes with Subversion >=1.7) or 
[`rsvndump`](https://github.com/jgehring/rsvndump) (with a slightly [different 
feature set](https://rsvndump.sourceforge.io/) and supporting older versions of 
Subversion).
+For this method we first need to use `svnadmin` to create an empty repository 
and then load the output of svnrdump/rsvndump into it. This can be done in the 
following way:
+
+## With `svnrdump dump`
+
+```console
+# svnadmin create bs2b_svn_store
+
+# time sh -c 'svnrdump dump svn://svn.code.sf.net/p/bs2b/code/ | svnadmin load 
bs2b_svn_store/'
+[..]
+real    0m3.008s
+user    0m0.309s
+sys     0m0.235s
+```
 
-The second, and recommended, method is first downloading the history with 
**rsvndump**. For this method we first need to use `svnadmin` to create an 
empty repository and then load the output of **rsvndump** into it. This can be 
done in the following way:
+## With `rsvndump`
 
 ```console
 # svnadmin create bs2b_svn_store
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/svneverever-1.7.1/setup.py 
new/svneverever-1.7.2/setup.py
--- old/svneverever-1.7.1/setup.py      2021-07-09 00:50:45.000000000 +0200
+++ new/svneverever-1.7.2/setup.py      2023-06-19 12:38:33.000000000 +0200
@@ -24,7 +24,7 @@
             'svneverever = svneverever.__main__:main',
         ],
     },
-    python_requires='>=3.6',
+    python_requires='>=3.7',
     setup_requires=[
         'setuptools>=38.6.0',  # for long_description_content_type
     ],
@@ -42,7 +42,6 @@
         'Natural Language :: English',
         'Programming Language :: Python',
         'Programming Language :: Python :: 3',
-        'Programming Language :: Python :: 3.6',
         'Programming Language :: Python :: 3.7',
         'Programming Language :: Python :: 3.8',
         'Programming Language :: Python :: 3 :: Only',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/svneverever-1.7.1/svneverever/__main__.py 
new/svneverever-1.7.2/svneverever/__main__.py
--- old/svneverever-1.7.1/svneverever/__main__.py       2021-07-09 
00:50:45.000000000 +0200
+++ new/svneverever-1.7.2/svneverever/__main__.py       2023-06-19 
12:38:33.000000000 +0200
@@ -1,11 +1,9 @@
 #!/usr/bin/env python3
-# -*- coding: utf-8 -*-
 # Copyright (C) 2010-2021 Sebastian Pipping <sebast...@pipping.org>
 # Copyright (C) 2011      Wouter Haffmans <wou...@boxplosive.nl>
 # Copyright (C) 2019      Kevin Lane <kevin.lan...@outlook.com>
 # Licensed under GPL v3 or later
 #
-from __future__ import print_function
 
 import argparse
 import getpass
@@ -66,13 +64,6 @@
     return _OsTerminalSize(columns=80, lines=24)
 
 
-def _for_print(text):
-    if sys.version_info >= (3, ):
-        return text
-
-    return text.encode(sys.stdout.encoding or 'UTF-8', 'replace')
-
-
 def dump_tree(t, revision_digits, latest_revision, config,
               level=0, branch_level=-3, tag_level=-3, parent_dir=''):
     def indent_print(line_start, text):
@@ -81,9 +72,9 @@
         else:
             level_text = ' '*(4*level)
         if config.show_numbers:
-            print('{}  {}{}'.format(line_start, level_text, _for_print(text)))
+            print(f'{line_start}  {level_text}{text}')
         else:
-            print('{}{}'.format(level_text, _for_print(text)))
+            print(f'{level_text}{text}')
 
     items = ((k, v) for k, v in t.items() if k)
 
@@ -116,7 +107,7 @@
             tl = level
         dump_tree(children, revision_digits, latest_revision, config,
                   level=level + 1, branch_level=bl, tag_level=tl,
-                  parent_dir='{}/{}'.format(parent_dir, k))
+                  parent_dir=f'{parent_dir}/{k}')
 
 
 def dump_nick_stats(nick_stats, revision_digits, config):
@@ -127,11 +118,11 @@
         for nick, (first_commit_rev, last_commit_rev, commit_count) \
                 in sorted(nick_stats.items()):
             print(format % (commit_count, first_commit_rev, last_commit_rev,
-                            _for_print(nick)))
+                            nick))
     else:
         for nick, (first_commit_rev, last_commit_rev, commit_count) \
                 in sorted(nick_stats.items()):
-            print(_for_print(nick))
+            print(nick)
 
 
 def ensure_uri(text):
@@ -148,7 +139,7 @@
 def digit_count(n):
     if n == 0:
         return 1
-    assert(n > 0)
+    assert n > 0
     return int(math.floor(math.log10(n)) + 1)
 
 
@@ -163,9 +154,9 @@
 
 def make_progress_bar(percent, width, seconds_taken, seconds_expected):
     other_len = (6 + 1) + 2 + (1 + 8 + 1 + 9 + 1) + 3 + 1
-    assert(width > 0)
+    assert width > 0
     bar_content_len = width - other_len
-    assert(bar_content_len >= 0)
+    assert bar_content_len >= 0
     fill_len = int(percent * bar_content_len / 100)
     open_len = bar_content_len - fill_len
     seconds_remaining = seconds_expected - seconds_taken
@@ -258,7 +249,7 @@
 
     try:
         if username:
-            print('Username: {}  (as requested by SVN)'.format(username),
+            print(f'Username: {username}  (as requested by SVN)',
                   file=sys.stderr)
         else:
             print('Username: ', end='', file=sys.stderr)
@@ -367,13 +358,23 @@
                 indicate_progress(rev)
             continue
 
-        summary = client.diff_summarize(
-            args.repo_uri,
-            revision1=pysvn.Revision(pysvn.opt_revision_kind.number, rev - 1),
-            url_or_path2=args.repo_uri,
-            revision2=pysvn.Revision(pysvn.opt_revision_kind.number, rev),
-            recurse=True,
-            ignore_ancestry=True)
+        try:
+            summary = client.diff_summarize(
+                args.repo_uri,
+                revision1=pysvn.Revision(pysvn.opt_revision_kind.number,
+                                         rev - 1),
+                url_or_path2=args.repo_uri,
+                revision2=pysvn.Revision(pysvn.opt_revision_kind.number,
+                                         rev),
+                recurse=True,
+                ignore_ancestry=True)
+        except pysvn.ClientError as e:
+            if not (rev == 1 and 'not found in the repository' in str(e)):
+                raise
+            print('ERROR: Path does not exist in the repository at revision 1'
+                  '. Please use svneverever with the root of the repository.',
+                  file=sys.stderr)
+            sys.exit(1)
 
         def is_directory_addition(summary_entry):
             return (summary_entry.summarize_kind
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/svneverever-1.7.1/svneverever/version.py 
new/svneverever-1.7.2/svneverever/version.py
--- old/svneverever-1.7.1/svneverever/version.py        2021-07-09 
00:50:45.000000000 +0200
+++ new/svneverever-1.7.2/svneverever/version.py        2023-06-19 
12:38:33.000000000 +0200
@@ -1,5 +1,5 @@
 # Copyright (C) 2010-2021 Sebastian Pipping <sebast...@pipping.org>
 # Licensed under GPL v3 or later
 
-VERSION = (1, 7, 1)
+VERSION = (1, 7, 2)
 VERSION_STR = '.'.join(str(e) for e in VERSION)

Reply via email to