Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-dulwich for openSUSE:Factory 
checked in at 2021-10-20 20:23:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-dulwich (Old)
 and      /work/SRC/openSUSE:Factory/.python-dulwich.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-dulwich"

Wed Oct 20 20:23:25 2021 rev:42 rq:925730 version:0.20.25

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-dulwich/python-dulwich.changes    
2021-08-24 10:54:26.204355604 +0200
+++ /work/SRC/openSUSE:Factory/.python-dulwich.new.1890/python-dulwich.changes  
2021-10-20 20:24:10.537374050 +0200
@@ -1,0 +2,7 @@
+Sat Oct 16 19:05:48 UTC 2021 - Dirk M??ller <dmuel...@suse.com>
+
+- update to 0.20.25:
+ * Fix ``dulwich`` script when installed via setup.py.
+ * Make default file mask consistent
+
+-------------------------------------------------------------------

Old:
----
  dulwich-0.20.24.tar.gz

New:
----
  dulwich-0.20.25.tar.gz

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

Other differences:
------------------
++++++ python-dulwich.spec ++++++
--- /var/tmp/diff_new_pack.Ys11bf/_old  2021-10-20 20:24:10.973374319 +0200
+++ /var/tmp/diff_new_pack.Ys11bf/_new  2021-10-20 20:24:10.977374321 +0200
@@ -20,7 +20,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define skip_python2 1
 Name:           python-dulwich
-Version:        0.20.24
+Version:        0.20.25
 Release:        0
 Summary:        Pure-Python Git Library
 License:        Apache-2.0 OR GPL-2.0-or-later

++++++ dulwich-0.20.24.tar.gz -> dulwich-0.20.25.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/.github/workflows/pythonpackage.yml 
new/dulwich-0.20.25/.github/workflows/pythonpackage.yml
--- old/dulwich-0.20.24/.github/workflows/pythonpackage.yml     2021-07-18 
14:58:17.000000000 +0200
+++ new/dulwich-0.20.25/.github/workflows/pythonpackage.yml     2021-08-23 
09:46:56.000000000 +0200
@@ -1,6 +1,10 @@
 name: Python package
 
-on: [push, pull_request]
+on:
+  push:
+  pull_request:
+  schedule:
+    - cron: '0 6 * * *'  # Daily 6AM UTC build
 
 jobs:
   build:
@@ -9,7 +13,7 @@
     strategy:
       matrix:
         os: [ubuntu-latest, macos-latest, windows-latest]
-        python-version: [3.5, 3.6, 3.7, 3.8, 3.9, pypy3]
+        python-version: [3.5, 3.6, 3.7, 3.8, 3.9, 3.10-dev, pypy3]
         exclude:
           # sqlite3 exit handling seems to get in the way
           - os: macos-latest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/NEWS new/dulwich-0.20.25/NEWS
--- old/dulwich-0.20.24/NEWS    2021-07-18 14:59:47.000000000 +0200
+++ new/dulwich-0.20.25/NEWS    2021-08-23 09:48:25.000000000 +0200
@@ -1,3 +1,11 @@
+0.20.25        2021-08-23
+
+ * Fix ``dulwich`` script when installed via setup.py.
+   (Dan Villiom Podlaski Christiansen)
+
+ * Make default file mask consistent
+   with Git. (Dan Villiom Podlaski Christiansen, #884)
+
 0.20.24        2021-07-18
 
  * config: disregard UTF-8 BOM when reading file.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/PKG-INFO new/dulwich-0.20.25/PKG-INFO
--- old/dulwich-0.20.24/PKG-INFO        2021-07-18 14:59:56.916478600 +0200
+++ new/dulwich-0.20.25/PKG-INFO        2021-08-23 09:48:33.554272700 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: dulwich
-Version: 0.20.24
+Version: 0.20.25
 Summary: Python Git Library
 Home-page: https://www.dulwich.io/
 Author: Jelmer Vernooij
@@ -9,102 +9,6 @@
 Project-URL: Bug Tracker, https://github.com/dulwich/dulwich/issues
 Project-URL: Repository, https://www.dulwich.io/code/
 Project-URL: GitHub, https://github.com/dulwich/dulwich
-Description: Dulwich
-        =======
-        
-        This is the Dulwich project.
-        
-        It aims to provide an interface to git repos (both local and remote) 
that
-        doesn't call out to git directly but instead uses pure Python.
-        
-        **Main website**: <https://www.dulwich.io/>
-        
-        **License**: Apache License, version 2 or GNU General Public License, 
version 2 or later.
-        
-        The project is named after the part of London that Mr. and Mrs. Git 
live in
-        in the particular Monty Python sketch.
-        
-        Installation
-        ------------
-        
-        By default, Dulwich' setup.py will attempt to build and install the 
optional C
-        extensions. The reason for this is that they significantly improve the 
performance
-        since some low-level operations that are executed often are much 
slower in CPython.
-        
-        If you don't want to install the C bindings, specify the --pure 
argument to setup.py::
-        
-            $ python setup.py --pure install
-        
-        or if you are installing from pip::
-        
-            $ pip install dulwich --global-option="--pure"
-        
-        Note that you can also specify --global-option in a
-        `requirements.txt 
<https://pip.pypa.io/en/stable/reference/pip_install/#requirement-specifiers>`_
-        file, e.g. like this::
-        
-            dulwich --global-option=--pure
-        
-        Getting started
-        ---------------
-        
-        Dulwich comes with both a lower-level API and higher-level plumbing 
("porcelain").
-        
-        For example, to use the lower level API to access the commit message 
of the
-        last commit::
-        
-            >>> from dulwich.repo import Repo
-            >>> r = Repo('.')
-            >>> r.head()
-            '57fbe010446356833a6ad1600059d80b1e731e15'
-            >>> c = r[r.head()]
-            >>> c
-            <Commit 015fc1267258458901a94d228e39f0a378370466>
-            >>> c.message
-            'Add note about encoding.\n'
-        
-        And to print it using porcelain::
-        
-            >>> from dulwich import porcelain
-            >>> porcelain.log('.', max_entries=1)
-            --------------------------------------------------
-            commit: 57fbe010446356833a6ad1600059d80b1e731e15
-            Author: Jelmer Vernoo?? <jel...@jelmer.uk>
-            Date:   Sat Apr 29 2017 23:57:34 +0000
-        
-            Add note about encoding.
-        
-        Further documentation
-        ---------------------
-        
-        The dulwich documentation can be found in docs/ and built by running 
``make
-        doc``. It can also be found `on the web 
<https://www.dulwich.io/docs/>`_.
-        
-        Help
-        ----
-        
-        There is a *#dulwich* IRC channel on the `OFTC 
<https://www.oftc.net/>`_, and
-        `dulwich-announce 
<https://groups.google.com/forum/#!forum/dulwich-announce>`_
-        and `dulwich-discuss 
<https://groups.google.com/forum/#!forum/dulwich-discuss>`_
-        mailing lists.
-        
-        Contributing
-        ------------
-        
-        For a full list of contributors, see the git logs or `AUTHORS 
<AUTHORS>`_.
-        
-        If you'd like to contribute to Dulwich, see the `CONTRIBUTING 
<CONTRIBUTING.rst>`_
-        file and `list of open issues 
<https://github.com/dulwich/dulwich/issues>`_.
-        
-        Supported versions of Python
-        ----------------------------
-        
-        At the moment, Dulwich supports (and is tested on) CPython 3.5 and 
later and
-        Pypy.
-        
-        The latest release series to support Python 2.x was the 0.19 series. 
See
-        the 0.19 branch in the Dulwich git repository.
-        
 Keywords: git vcs
 Platform: UNKNOWN
 Classifier: Development Status :: 4 - Beta
@@ -124,3 +28,103 @@
 Provides-Extra: https
 Provides-Extra: pgp
 Provides-Extra: watch
+License-File: COPYING
+License-File: AUTHORS
+
+Dulwich
+=======
+
+This is the Dulwich project.
+
+It aims to provide an interface to git repos (both local and remote) that
+doesn't call out to git directly but instead uses pure Python.
+
+**Main website**: <https://www.dulwich.io/>
+
+**License**: Apache License, version 2 or GNU General Public License, version 
2 or later.
+
+The project is named after the part of London that Mr. and Mrs. Git live in
+in the particular Monty Python sketch.
+
+Installation
+------------
+
+By default, Dulwich' setup.py will attempt to build and install the optional C
+extensions. The reason for this is that they significantly improve the 
performance
+since some low-level operations that are executed often are much slower in 
CPython.
+
+If you don't want to install the C bindings, specify the --pure argument to 
setup.py::
+
+    $ python setup.py --pure install
+
+or if you are installing from pip::
+
+    $ pip install dulwich --global-option="--pure"
+
+Note that you can also specify --global-option in a
+`requirements.txt 
<https://pip.pypa.io/en/stable/reference/pip_install/#requirement-specifiers>`_
+file, e.g. like this::
+
+    dulwich --global-option=--pure
+
+Getting started
+---------------
+
+Dulwich comes with both a lower-level API and higher-level plumbing 
("porcelain").
+
+For example, to use the lower level API to access the commit message of the
+last commit::
+
+    >>> from dulwich.repo import Repo
+    >>> r = Repo('.')
+    >>> r.head()
+    '57fbe010446356833a6ad1600059d80b1e731e15'
+    >>> c = r[r.head()]
+    >>> c
+    <Commit 015fc1267258458901a94d228e39f0a378370466>
+    >>> c.message
+    'Add note about encoding.\n'
+
+And to print it using porcelain::
+
+    >>> from dulwich import porcelain
+    >>> porcelain.log('.', max_entries=1)
+    --------------------------------------------------
+    commit: 57fbe010446356833a6ad1600059d80b1e731e15
+    Author: Jelmer Vernoo?? <jel...@jelmer.uk>
+    Date:   Sat Apr 29 2017 23:57:34 +0000
+
+    Add note about encoding.
+
+Further documentation
+---------------------
+
+The dulwich documentation can be found in docs/ and built by running ``make
+doc``. It can also be found `on the web <https://www.dulwich.io/docs/>`_.
+
+Help
+----
+
+There is a *#dulwich* IRC channel on the `OFTC <https://www.oftc.net/>`_, and
+`dulwich-announce <https://groups.google.com/forum/#!forum/dulwich-announce>`_
+and `dulwich-discuss 
<https://groups.google.com/forum/#!forum/dulwich-discuss>`_
+mailing lists.
+
+Contributing
+------------
+
+For a full list of contributors, see the git logs or `AUTHORS <AUTHORS>`_.
+
+If you'd like to contribute to Dulwich, see the `CONTRIBUTING 
<CONTRIBUTING.rst>`_
+file and `list of open issues <https://github.com/dulwich/dulwich/issues>`_.
+
+Supported versions of Python
+----------------------------
+
+At the moment, Dulwich supports (and is tested on) CPython 3.5 and later and
+Pypy.
+
+The latest release series to support Python 2.x was the 0.19 series. See
+the 0.19 branch in the Dulwich git repository.
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/dulwich/__init__.py 
new/dulwich-0.20.25/dulwich/__init__.py
--- old/dulwich-0.20.24/dulwich/__init__.py     2021-07-18 14:59:47.000000000 
+0200
+++ new/dulwich-0.20.25/dulwich/__init__.py     2021-08-23 09:48:25.000000000 
+0200
@@ -22,4 +22,4 @@
 
 """Python implementation of the Git file formats and protocols."""
 
-__version__ = (0, 20, 24)
+__version__ = (0, 20, 25)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/dulwich/__main__.py 
new/dulwich-0.20.25/dulwich/__main__.py
--- old/dulwich-0.20.24/dulwich/__main__.py     1970-01-01 01:00:00.000000000 
+0100
+++ new/dulwich-0.20.25/dulwich/__main__.py     2021-08-23 09:46:56.000000000 
+0200
@@ -0,0 +1,4 @@
+from . import cli
+
+if __name__ == "__main__":
+    cli._main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/dulwich/cli.py 
new/dulwich-0.20.25/dulwich/cli.py
--- old/dulwich-0.20.24/dulwich/cli.py  2021-07-18 14:58:17.000000000 +0200
+++ new/dulwich-0.20.25/dulwich/cli.py  2021-08-23 09:46:56.000000000 +0200
@@ -731,7 +731,7 @@
 
 def main(argv=None):
     if argv is None:
-        argv = sys.argv
+        argv = sys.argv[1:]
 
     if len(argv) < 1:
         print("Usage: dulwich <%s> [OPTIONS...]" % ("|".join(commands.keys())))
@@ -747,9 +747,13 @@
     return cmd_kls().run(argv[1:])
 
 
-if __name__ == "__main__":
+def _main():
     if "DULWICH_PDB" in os.environ and getattr(signal, "SIGQUIT", None):
         signal.signal(signal.SIGQUIT, signal_quit)  # type: ignore
     signal.signal(signal.SIGINT, signal_int)
 
-    sys.exit(main(sys.argv[1:]))
+    sys.exit(main())
+
+
+if __name__ == "__main__":
+    _main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/dulwich/config.py 
new/dulwich-0.20.25/dulwich/config.py
--- old/dulwich-0.20.24/dulwich/config.py       2021-07-18 14:58:17.000000000 
+0200
+++ new/dulwich-0.20.25/dulwich/config.py       2021-08-23 09:46:56.000000000 
+0200
@@ -41,7 +41,7 @@
         MutableMapping,
     )
 except ImportError:  # python < 3.7
-    from collections import (
+    from collections import (  # type: ignore
         Iterable,
         MutableMapping,
     )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/dulwich/file.py 
new/dulwich-0.20.25/dulwich/file.py
--- old/dulwich-0.20.24/dulwich/file.py 2021-07-18 14:58:17.000000000 +0200
+++ new/dulwich-0.20.25/dulwich/file.py 2021-08-23 09:46:56.000000000 +0200
@@ -66,7 +66,7 @@
     os.remove(tmpfile)
 
 
-def GitFile(filename, mode="rb", bufsize=-1):
+def GitFile(filename, mode="rb", bufsize=-1, mask=0o644):
     """Create a file object that obeys the git file locking protocol.
 
     Returns: a builtin file object or a _GitFile object
@@ -77,6 +77,10 @@
     are not.  To read and write from the same file, you can take advantage of
     the fact that opening a file for write does not actually open the file you
     request.
+
+    The default file mask makes any created files user-writable and
+    world-readable.
+
     """
     if "a" in mode:
         raise IOError("append mode not supported for Git files")
@@ -85,7 +89,7 @@
     if "b" not in mode:
         raise IOError("text mode not supported for Git files")
     if "w" in mode:
-        return _GitFile(filename, mode, bufsize)
+        return _GitFile(filename, mode, bufsize, mask)
     else:
         return io.open(filename, mode, bufsize)
 
@@ -136,7 +140,7 @@
         "writelines",
     )
 
-    def __init__(self, filename, mode, bufsize):
+    def __init__(self, filename, mode, bufsize, mask):
         self._filename = filename
         if isinstance(self._filename, bytes):
             self._lockfilename = self._filename + b".lock"
@@ -146,6 +150,7 @@
             fd = os.open(
                 self._lockfilename,
                 os.O_RDWR | os.O_CREAT | os.O_EXCL | getattr(os, "O_BINARY", 
0),
+                mask,
             )
         except FileExistsError:
             raise FileLocked(filename, self._lockfilename)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/dulwich/object_store.py 
new/dulwich-0.20.25/dulwich/object_store.py
--- old/dulwich-0.20.24/dulwich/object_store.py 2021-07-18 14:58:17.000000000 
+0200
+++ new/dulwich-0.20.25/dulwich/object_store.py 2021-08-23 09:46:56.000000000 
+0200
@@ -70,6 +70,11 @@
 INFODIR = "info"
 PACKDIR = "pack"
 
+# use permissions consistent with Git; just readable by everyone
+# TODO: should packs also be non-writable on Windows? if so, that
+# would requite some rather significant adjustments to the test suite
+PACK_MODE = 0o444 if sys.platform != "win32" else 0o644
+
 
 class BaseObjectStore(object):
     """Object store interface."""
@@ -805,7 +810,7 @@
         os.rename(path, target_pack)
 
         # Write the index.
-        index_file = GitFile(pack_base_name + ".idx", "wb")
+        index_file = GitFile(pack_base_name + ".idx", "wb", mask=PACK_MODE)
         try:
             write_pack_index_v2(index_file, entries, pack_sha)
             index_file.close()
@@ -837,6 +842,7 @@
 
         fd, path = tempfile.mkstemp(dir=self.path, prefix="tmp_pack_")
         with os.fdopen(fd, "w+b") as f:
+            os.chmod(path, PACK_MODE)
             indexer = PackIndexer(f, resolve_ext_ref=self.get_raw)
             copier = PackStreamCopier(read_all, read_some, f, 
delta_iter=indexer)
             copier.verify()
@@ -856,7 +862,7 @@
             basename = self._get_pack_basepath(entries)
             index_name = basename + ".idx"
             if not os.path.exists(index_name):
-                with GitFile(index_name, "wb") as f:
+                with GitFile(index_name, "wb", mask=PACK_MODE) as f:
                     write_pack_index_v2(f, entries, p.get_stored_checksum())
         for pack in self.packs:
             if pack._basename == basename:
@@ -885,6 +891,7 @@
 
         fd, path = tempfile.mkstemp(dir=self.pack_dir, suffix=".pack")
         f = os.fdopen(fd, "wb")
+        os.chmod(path, PACK_MODE)
 
         def commit():
             f.flush()
@@ -916,7 +923,7 @@
             pass
         if os.path.exists(path):
             return  # Already there, no need to write again
-        with GitFile(path, "wb") as f:
+        with GitFile(path, "wb", mask=PACK_MODE) as f:
             f.write(
                 
obj.as_legacy_object(compression_level=self.loose_compression_level)
             )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/dulwich/repo.py 
new/dulwich-0.20.25/dulwich/repo.py
--- old/dulwich-0.20.24/dulwich/repo.py 2021-07-18 14:58:17.000000000 +0200
+++ new/dulwich-0.20.25/dulwich/repo.py 2021-08-23 09:46:56.000000000 +0200
@@ -1262,8 +1262,10 @@
 
         root_path_bytes = os.fsencode(self.path)
 
-        if not isinstance(fs_paths, list):
+        if isinstance(fs_paths, str):
             fs_paths = [fs_paths]
+        fs_paths = list(fs_paths)
+
         from dulwich.index import (
             blob_from_path_and_stat,
             index_entry_from_stat,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/dulwich/tests/test_object_store.py 
new/dulwich-0.20.25/dulwich/tests/test_object_store.py
--- old/dulwich-0.20.24/dulwich/tests/test_object_store.py      2021-07-18 
14:58:17.000000000 +0200
+++ new/dulwich-0.20.25/dulwich/tests/test_object_store.py      2021-08-23 
09:46:56.000000000 +0200
@@ -27,6 +27,7 @@
 import os
 import shutil
 import stat
+import sys
 import tempfile
 
 from dulwich.index import (
@@ -438,6 +439,14 @@
         for alt_path in store._read_alternate_paths():
             self.assertNotIn("#", alt_path)
 
+    def test_file_modes(self):
+        self.store.add_object(testobject)
+        path = self.store._get_shafile_path(testobject.id)
+        mode = os.stat(path).st_mode
+
+        packmode = "0o100444" if sys.platform != "win32" else "0o100666"
+        self.assertEqual(oct(mode), packmode)
+
     def test_corrupted_object_raise_exception(self):
         """Corrupted sha1 disk file should raise specific exception"""
         self.store.add_object(testobject)
@@ -448,8 +457,11 @@
         self.assertIsNotNone(self.store._get_loose_object(testobject.id))
 
         path = self.store._get_shafile_path(testobject.id)
+        old_mode = os.stat(path).st_mode
+        os.chmod(path, 0o600)
         with open(path, "wb") as f:  # corrupt the file
             f.write(b"")
+        os.chmod(path, old_mode)
 
         expected_error_msg = "Corrupted empty file detected"
         try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/dulwich/tests/test_pack.py 
new/dulwich-0.20.25/dulwich/tests/test_pack.py
--- old/dulwich-0.20.24/dulwich/tests/test_pack.py      2021-07-18 
14:58:17.000000000 +0200
+++ new/dulwich-0.20.25/dulwich/tests/test_pack.py      2021-08-23 
09:46:56.000000000 +0200
@@ -26,6 +26,7 @@
 from hashlib import sha1
 import os
 import shutil
+import sys
 import tempfile
 import zlib
 
@@ -83,6 +84,7 @@
 a_sha = b"6f670c0fb53f9463760b7295fbb814e965fb20c8"
 tree_sha = b"b2a2766a2879c209ab1176e7e778b81ae422eeaa"
 commit_sha = b"f18faa16531ac570a3fdc8c7ca16682548dafd12"
+indexmode = "0o100644" if sys.platform != "win32" else "0o100666"
 
 
 class PackTests(TestCase):
@@ -338,6 +340,7 @@
             p.create_index_v1(filename)
             idx1 = load_pack_index(filename)
             idx2 = self.get_pack_index(pack1_sha)
+            self.assertEqual(oct(os.stat(filename).st_mode), indexmode)
             self.assertEqual(idx1, idx2)
 
     def test_create_index_v2(self):
@@ -346,6 +349,7 @@
             p.create_index_v2(filename)
             idx1 = load_pack_index(filename)
             idx2 = self.get_pack_index(pack1_sha)
+            self.assertEqual(oct(os.stat(filename).st_mode), indexmode)
             self.assertEqual(idx1, idx2)
 
     def test_compute_file_sha(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/dulwich/tests/test_repository.py 
new/dulwich-0.20.25/dulwich/tests/test_repository.py
--- old/dulwich-0.20.24/dulwich/tests/test_repository.py        2021-07-18 
14:58:17.000000000 +0200
+++ new/dulwich-0.20.25/dulwich/tests/test_repository.py        2021-08-23 
09:46:56.000000000 +0200
@@ -21,10 +21,11 @@
 
 """Tests for the repository."""
 
+import glob
 import locale
 import os
-import stat
 import shutil
+import stat
 import sys
 import tempfile
 import warnings
@@ -80,6 +81,21 @@
             config_text = f.read()
             self.assertTrue(barestr in config_text, "%r" % config_text)
 
+        if isinstance(repo, Repo):
+            expected_mode = '0o100644' if expect_filemode else '0o100666'
+            expected = {
+                'HEAD': expected_mode,
+                'config': expected_mode,
+                'description': expected_mode,
+            }
+            actual = {
+                f[len(repo._controldir) + 1:]: oct(os.stat(f).st_mode)
+                for f in glob.glob(os.path.join(repo._controldir, '*'))
+                if os.path.isfile(f)
+            }
+
+            self.assertEqual(expected, actual)
+
     def test_create_memory(self):
         repo = MemoryRepo.init_bare([], {})
         self._check_repo_contents(repo, True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/dulwich.egg-info/PKG-INFO 
new/dulwich-0.20.25/dulwich.egg-info/PKG-INFO
--- old/dulwich-0.20.24/dulwich.egg-info/PKG-INFO       2021-07-18 
14:59:56.000000000 +0200
+++ new/dulwich-0.20.25/dulwich.egg-info/PKG-INFO       2021-08-23 
09:48:33.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: dulwich
-Version: 0.20.24
+Version: 0.20.25
 Summary: Python Git Library
 Home-page: https://www.dulwich.io/
 Author: Jelmer Vernooij
@@ -9,102 +9,6 @@
 Project-URL: Bug Tracker, https://github.com/dulwich/dulwich/issues
 Project-URL: Repository, https://www.dulwich.io/code/
 Project-URL: GitHub, https://github.com/dulwich/dulwich
-Description: Dulwich
-        =======
-        
-        This is the Dulwich project.
-        
-        It aims to provide an interface to git repos (both local and remote) 
that
-        doesn't call out to git directly but instead uses pure Python.
-        
-        **Main website**: <https://www.dulwich.io/>
-        
-        **License**: Apache License, version 2 or GNU General Public License, 
version 2 or later.
-        
-        The project is named after the part of London that Mr. and Mrs. Git 
live in
-        in the particular Monty Python sketch.
-        
-        Installation
-        ------------
-        
-        By default, Dulwich' setup.py will attempt to build and install the 
optional C
-        extensions. The reason for this is that they significantly improve the 
performance
-        since some low-level operations that are executed often are much 
slower in CPython.
-        
-        If you don't want to install the C bindings, specify the --pure 
argument to setup.py::
-        
-            $ python setup.py --pure install
-        
-        or if you are installing from pip::
-        
-            $ pip install dulwich --global-option="--pure"
-        
-        Note that you can also specify --global-option in a
-        `requirements.txt 
<https://pip.pypa.io/en/stable/reference/pip_install/#requirement-specifiers>`_
-        file, e.g. like this::
-        
-            dulwich --global-option=--pure
-        
-        Getting started
-        ---------------
-        
-        Dulwich comes with both a lower-level API and higher-level plumbing 
("porcelain").
-        
-        For example, to use the lower level API to access the commit message 
of the
-        last commit::
-        
-            >>> from dulwich.repo import Repo
-            >>> r = Repo('.')
-            >>> r.head()
-            '57fbe010446356833a6ad1600059d80b1e731e15'
-            >>> c = r[r.head()]
-            >>> c
-            <Commit 015fc1267258458901a94d228e39f0a378370466>
-            >>> c.message
-            'Add note about encoding.\n'
-        
-        And to print it using porcelain::
-        
-            >>> from dulwich import porcelain
-            >>> porcelain.log('.', max_entries=1)
-            --------------------------------------------------
-            commit: 57fbe010446356833a6ad1600059d80b1e731e15
-            Author: Jelmer Vernoo?? <jel...@jelmer.uk>
-            Date:   Sat Apr 29 2017 23:57:34 +0000
-        
-            Add note about encoding.
-        
-        Further documentation
-        ---------------------
-        
-        The dulwich documentation can be found in docs/ and built by running 
``make
-        doc``. It can also be found `on the web 
<https://www.dulwich.io/docs/>`_.
-        
-        Help
-        ----
-        
-        There is a *#dulwich* IRC channel on the `OFTC 
<https://www.oftc.net/>`_, and
-        `dulwich-announce 
<https://groups.google.com/forum/#!forum/dulwich-announce>`_
-        and `dulwich-discuss 
<https://groups.google.com/forum/#!forum/dulwich-discuss>`_
-        mailing lists.
-        
-        Contributing
-        ------------
-        
-        For a full list of contributors, see the git logs or `AUTHORS 
<AUTHORS>`_.
-        
-        If you'd like to contribute to Dulwich, see the `CONTRIBUTING 
<CONTRIBUTING.rst>`_
-        file and `list of open issues 
<https://github.com/dulwich/dulwich/issues>`_.
-        
-        Supported versions of Python
-        ----------------------------
-        
-        At the moment, Dulwich supports (and is tested on) CPython 3.5 and 
later and
-        Pypy.
-        
-        The latest release series to support Python 2.x was the 0.19 series. 
See
-        the 0.19 branch in the Dulwich git repository.
-        
 Keywords: git vcs
 Platform: UNKNOWN
 Classifier: Development Status :: 4 - Beta
@@ -124,3 +28,103 @@
 Provides-Extra: https
 Provides-Extra: pgp
 Provides-Extra: watch
+License-File: COPYING
+License-File: AUTHORS
+
+Dulwich
+=======
+
+This is the Dulwich project.
+
+It aims to provide an interface to git repos (both local and remote) that
+doesn't call out to git directly but instead uses pure Python.
+
+**Main website**: <https://www.dulwich.io/>
+
+**License**: Apache License, version 2 or GNU General Public License, version 
2 or later.
+
+The project is named after the part of London that Mr. and Mrs. Git live in
+in the particular Monty Python sketch.
+
+Installation
+------------
+
+By default, Dulwich' setup.py will attempt to build and install the optional C
+extensions. The reason for this is that they significantly improve the 
performance
+since some low-level operations that are executed often are much slower in 
CPython.
+
+If you don't want to install the C bindings, specify the --pure argument to 
setup.py::
+
+    $ python setup.py --pure install
+
+or if you are installing from pip::
+
+    $ pip install dulwich --global-option="--pure"
+
+Note that you can also specify --global-option in a
+`requirements.txt 
<https://pip.pypa.io/en/stable/reference/pip_install/#requirement-specifiers>`_
+file, e.g. like this::
+
+    dulwich --global-option=--pure
+
+Getting started
+---------------
+
+Dulwich comes with both a lower-level API and higher-level plumbing 
("porcelain").
+
+For example, to use the lower level API to access the commit message of the
+last commit::
+
+    >>> from dulwich.repo import Repo
+    >>> r = Repo('.')
+    >>> r.head()
+    '57fbe010446356833a6ad1600059d80b1e731e15'
+    >>> c = r[r.head()]
+    >>> c
+    <Commit 015fc1267258458901a94d228e39f0a378370466>
+    >>> c.message
+    'Add note about encoding.\n'
+
+And to print it using porcelain::
+
+    >>> from dulwich import porcelain
+    >>> porcelain.log('.', max_entries=1)
+    --------------------------------------------------
+    commit: 57fbe010446356833a6ad1600059d80b1e731e15
+    Author: Jelmer Vernoo?? <jel...@jelmer.uk>
+    Date:   Sat Apr 29 2017 23:57:34 +0000
+
+    Add note about encoding.
+
+Further documentation
+---------------------
+
+The dulwich documentation can be found in docs/ and built by running ``make
+doc``. It can also be found `on the web <https://www.dulwich.io/docs/>`_.
+
+Help
+----
+
+There is a *#dulwich* IRC channel on the `OFTC <https://www.oftc.net/>`_, and
+`dulwich-announce <https://groups.google.com/forum/#!forum/dulwich-announce>`_
+and `dulwich-discuss 
<https://groups.google.com/forum/#!forum/dulwich-discuss>`_
+mailing lists.
+
+Contributing
+------------
+
+For a full list of contributors, see the git logs or `AUTHORS <AUTHORS>`_.
+
+If you'd like to contribute to Dulwich, see the `CONTRIBUTING 
<CONTRIBUTING.rst>`_
+file and `list of open issues <https://github.com/dulwich/dulwich/issues>`_.
+
+Supported versions of Python
+----------------------------
+
+At the moment, Dulwich supports (and is tested on) CPython 3.5 and later and
+Pypy.
+
+The latest release series to support Python 2.x was the 0.19 series. See
+the 0.19 branch in the Dulwich git repository.
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/dulwich.egg-info/SOURCES.txt 
new/dulwich-0.20.25/dulwich.egg-info/SOURCES.txt
--- old/dulwich-0.20.24/dulwich.egg-info/SOURCES.txt    2021-07-18 
14:59:56.000000000 +0200
+++ new/dulwich-0.20.25/dulwich.egg-info/SOURCES.txt    2021-08-23 
09:48:33.000000000 +0200
@@ -50,6 +50,7 @@
 docs/tutorial/repo.txt
 docs/tutorial/tag.txt
 dulwich/__init__.py
+dulwich/__main__.py
 dulwich/_diff_tree.c
 dulwich/_objects.c
 dulwich/_pack.c
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/releaser.conf 
new/dulwich-0.20.25/releaser.conf
--- old/dulwich-0.20.24/releaser.conf   2021-07-18 14:58:17.000000000 +0200
+++ new/dulwich-0.20.25/releaser.conf   2021-08-23 09:46:56.000000000 +0200
@@ -1,3 +1,4 @@
+# See https://github.com/jelmer/releaser
 news_file: "NEWS"
 timeout_days: 5
 tag_name: "dulwich-$VERSION"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/dulwich-0.20.24/setup.py new/dulwich-0.20.25/setup.py
--- old/dulwich-0.20.24/setup.py        2021-07-18 14:59:47.000000000 +0200
+++ new/dulwich-0.20.25/setup.py        2021-08-23 09:48:25.000000000 +0200
@@ -23,7 +23,7 @@
         'For 2.7 support, please install a version prior to 0.20')
 
 
-dulwich_version_string = '0.20.24'
+dulwich_version_string = '0.20.25'
 
 
 class DulwichDistribution(Distribution):

Reply via email to