Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-importlab for
openSUSE:Factory checked in at 2023-12-08 22:31:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-importlab (Old)
and /work/SRC/openSUSE:Factory/.python-importlab.new.25432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-importlab"
Fri Dec 8 22:31:53 2023 rev:8 rq:1131708 version:0.8.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-importlab/python-importlab.changes
2022-10-29 20:18:43.570728357 +0200
+++
/work/SRC/openSUSE:Factory/.python-importlab.new.25432/python-importlab.changes
2023-12-08 22:32:07.692164951 +0100
@@ -1,0 +2,6 @@
+Thu Dec 7 22:00:25 UTC 2023 - Dirk Müller <[email protected]>
+
+- update to 0.8.1:
+ * Filter out self-edges from the graph.
+
+-------------------------------------------------------------------
Old:
----
importlab-0.8.tar.gz
New:
----
importlab-0.8.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-importlab.spec ++++++
--- /var/tmp/diff_new_pack.GO3UHQ/_old 2023-12-08 22:32:08.364189678 +0100
+++ /var/tmp/diff_new_pack.GO3UHQ/_new 2023-12-08 22:32:08.368189826 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-importlab
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -21,7 +21,7 @@
# python36-networkx no longer exists in Tumbleweed (due to SciPy following NEP
29)
%define skip_python36 1
Name: python-importlab
-Version: 0.8
+Version: 0.8.1
Release: 0
Summary: A library to calculate python dependency graphs
License: Apache-2.0
++++++ importlab-0.8.tar.gz -> importlab-0.8.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/importlab-0.8/CHANGELOG new/importlab-0.8.1/CHANGELOG
--- old/importlab-0.8/CHANGELOG 2022-09-22 21:26:33.000000000 +0200
+++ new/importlab-0.8.1/CHANGELOG 2023-10-07 00:39:32.000000000 +0200
@@ -1,3 +1,6 @@
+Version 0.8.1 (2023-10-06)
+* FIX: Filter out self-edges from the graph.
+
Version 0.8 (2022-09-22)
* Add --version to bin importlab.
* Use ImportStatement.source to impove import resolution.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/importlab-0.8/CONTRIBUTING.md
new/importlab-0.8.1/CONTRIBUTING.md
--- old/importlab-0.8/CONTRIBUTING.md 2022-04-23 01:16:51.000000000 +0200
+++ new/importlab-0.8.1/CONTRIBUTING.md 2023-08-10 07:01:57.000000000 +0200
@@ -20,6 +20,44 @@
All submissions, including submissions by project members, require review. We
use Github pull requests for this purpose.
+### Releasing to PyPI
+
+To release to PyPI:
+
+1. (Optional) We recommend that you release from within a virtualenv:
+ ```console
+ $ python3 -m venv .venv_release
+ $ source .venv_release/bin/activate
+ ```
+1. Make sure that `wheel` and `twine` are installed:
+ ```console
+ $ pip install wheel twine
+ ```
+1. Navigate into the top-level `importlab` directory and build a source
+ distribution and a wheel:
+ ```console
+ $ cd importlab
+ $ python3 setup.py sdist bdist_wheel
+ ```
+ The build command puts the distributions in a `dist` subdirectory and also
+ creates `build` and `importlab.egginfo` subdirectories as side effects.
+1. Upload the distributions to (Test)PyPI:
+ ```console
+ $ twine upload --repository testpypi dist/*
+ ```
+ Remove the `--repository testpypi` to upload to PyPI proper.
+1. (Optional) If you've uploaded to TestPyPI, you can install your new version
+ for testing like so:
+ ```console
+ $ pip install -U --index-url https://test.pypi.org/simple/
--extra-index-url https://pypi.org/simple importlab
+ ```
+ If you've uploaded to PyPI proper, install with `pip install -U importlab`
+ as usual.
+1. Clean up the subdirectories created by the build command:
+ ```console
+ $ rm -rf build/ dist/ importlab.egg-info/
+ ```
+
### The small print
Contributions made by corporations are covered by a different agreement than
the one mentioned above; they're covered by the the Software Grant and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/importlab-0.8/PKG-INFO new/importlab-0.8.1/PKG-INFO
--- old/importlab-0.8/PKG-INFO 2022-09-23 00:35:42.746949200 +0200
+++ new/importlab-0.8.1/PKG-INFO 2023-10-07 00:43:29.962581000 +0200
@@ -1,12 +1,11 @@
Metadata-Version: 2.1
Name: importlab
-Version: 0.8
+Version: 0.8.1
Summary: A library to calculate python dependency graphs.
Home-page: https://github.com/google/importlab
Maintainer: Google Inc.
Maintainer-email: [email protected]
License: Apache 2.0
-Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
@@ -89,5 +88,3 @@
update and parallel execution features
- Integration with other static analysis tools
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/importlab-0.8/importlab/graph.py
new/importlab-0.8.1/importlab/graph.py
--- old/importlab-0.8/importlab/graph.py 2022-09-22 06:43:57.000000000
+0200
+++ new/importlab-0.8.1/importlab/graph.py 2023-10-07 00:35:35.000000000
+0200
@@ -120,7 +120,10 @@
queue.append(f)
seen.add(f)
self.graph.add_node(f)
- self.graph.add_edge(filename, f)
+ if filename != f:
+ # Prevent self edges if our dependency checker mistakenly
+ # detects a module as its own direct dependency.
+ self.graph.add_edge(filename, f)
def shrink_to_node(self, scc):
"""Shrink a strongly connected component into a node."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/importlab-0.8/importlab.egg-info/PKG-INFO
new/importlab-0.8.1/importlab.egg-info/PKG-INFO
--- old/importlab-0.8/importlab.egg-info/PKG-INFO 2022-09-23
00:35:42.000000000 +0200
+++ new/importlab-0.8.1/importlab.egg-info/PKG-INFO 2023-10-07
00:43:29.000000000 +0200
@@ -1,12 +1,11 @@
Metadata-Version: 2.1
Name: importlab
-Version: 0.8
+Version: 0.8.1
Summary: A library to calculate python dependency graphs.
Home-page: https://github.com/google/importlab
Maintainer: Google Inc.
Maintainer-email: [email protected]
License: Apache 2.0
-Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
@@ -89,5 +88,3 @@
update and parallel execution features
- Integration with other static analysis tools
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/importlab-0.8/setup.py new/importlab-0.8.1/setup.py
--- old/importlab-0.8/setup.py 2022-09-22 21:26:33.000000000 +0200
+++ new/importlab-0.8.1/setup.py 2023-10-07 00:40:09.000000000 +0200
@@ -13,7 +13,7 @@
EMAIL = '[email protected]'
AUTHOR = 'Google Inc.'
REQUIRES_PYTHON = '>=3.6.0'
-VERSION = '0.8'
+VERSION = '0.8.1'
REQUIRED = [
'networkx>=2',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/importlab-0.8/tests/test_graph.py
new/importlab-0.8.1/tests/test_graph.py
--- old/importlab-0.8/tests/test_graph.py 2022-04-23 01:16:51.000000000
+0200
+++ new/importlab-0.8.1/tests/test_graph.py 2023-10-07 00:36:29.000000000
+0200
@@ -67,6 +67,11 @@
"b.py": (["d.py", "a.py"], ["f"], {}),
}
+SELF_DEPS = {
+ "a.py": (["a.py", "b.py", "c.py"], [], {}),
+ "b.py": (["a.py", "b.py", "d.py"], [], {}),
+}
+
SIMPLE_SYSTEM_DEPS = {
"a.py": (["b.py"], [], {"b.py": resolve.System("b.py", "b")}),
"b.py": (["c.py"], [], {"c.py": resolve.System("c.py", "c")}),
@@ -117,6 +122,18 @@
sources = g.ordered_sorted_source_files()
self.check_order(sources, ["d.py"], ["a.py", "b.py"])
self.check_order(sources, ["c.py"], ["a.py", "b.py"])
+
+ def test_self_dep(self):
+ g = FakeImportGraph(SELF_DEPS)
+ g.add_file_recursive("a.py")
+ g.build()
+ cycles = [x for x, ys in g.deps_list()
+ if isinstance(x, graph.NodeSet)]
+ self.assertEqual(len(cycles), 1)
+ self.assertEqual(set(cycles[0].nodes), set(["a.py", "b.py"]))
+ sources = g.ordered_sorted_source_files()
+ self.check_order(sources, ["d.py"], ["a.py", "b.py"])
+ self.check_order(sources, ["c.py"], ["a.py", "b.py"])
def test_trim(self):
# Untrimmed g1 follows system module b to its dependency c.