openSUSE Commits
Threads by month
- ----- 2025 -----
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
December 2021
- 1 participants
- 2461 discussions
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package gitg for openSUSE:Factory checked in at 2021-12-29 21:10:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gitg (Old)
and /work/SRC/openSUSE:Factory/.gitg.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gitg"
Wed Dec 29 21:10:59 2021 rev:57 rq:942954 version:41
Changes:
--------
--- /work/SRC/openSUSE:Factory/gitg/gitg.changes 2021-09-21 21:14:00.874697797 +0200
+++ /work/SRC/openSUSE:Factory/.gitg.new.2520/gitg.changes 2021-12-29 21:11:31.106313239 +0100
@@ -1,0 +2,18 @@
+Mon Dec 27 18:23:19 UTC 2021 - Bj��rn Lie <bjorn.lie(a)gmail.com>
+
+- Update to version 41:
+ + Manage if there's no textconv config
+ + Convert to text using gitattributes config
+ + Side by side diff text renderers
+ + Read setup for smart commits from git config
+ + Show diff stats only on text renderer
+ + Put image renderer first on stack
+ + Allow to diff images as text if its mime type supports it
+ + Add new-window action to desktop file
+ + Fix the ninja call in one of the building guides
+ + TextView needs to be wrapped in a scroll view
+ + Fix libgitg-date test package failure
+ + Use GUri instead of SoupURI
+- Use released tag in service.
+
+-------------------------------------------------------------------
Old:
----
_servicedata
gitg-3.32.1+312.obscpio
New:
----
gitg-41.obscpio
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gitg.spec ++++++
--- /var/tmp/diff_new_pack.45mdNn/_old 2021-12-29 21:11:31.606313651 +0100
+++ /var/tmp/diff_new_pack.45mdNn/_new 2021-12-29 21:11:31.610313654 +0100
@@ -17,7 +17,7 @@
Name: gitg
-Version: 3.32.1+312
+Version: 41
Release: 0
Summary: Git repository viewer
License: GPL-2.0-or-later
++++++ _service ++++++
--- /var/tmp/diff_new_pack.45mdNn/_old 2021-12-29 21:11:31.638313677 +0100
+++ /var/tmp/diff_new_pack.45mdNn/_new 2021-12-29 21:11:31.642313681 +0100
@@ -2,10 +2,9 @@
<service name="obs_scm" mode="disabled">
<param name="scm">git</param>
<param name="url">https://gitlab.gnome.org/GNOME/gitg.git</param>
- <param name="revision">master</param>
- <param name="versionformat">3.32.1+@TAG_OFFSET@</param>
+ <param name="revision">refs/tags/v41</param>
+ <param name="versionformat">@PARENT_TAG@</param>
<param name="versionrewrite-pattern">v(.*)</param>
- <param name="changesgenerate">enable</param>
</service>
<service name="tar" mode="buildtime"/>
<service name="recompress" mode="buildtime">
++++++ gitg-3.32.1+312.obscpio -> gitg-41.obscpio ++++++
/work/SRC/openSUSE:Factory/gitg/gitg-3.32.1+312.obscpio /work/SRC/openSUSE:Factory/.gitg.new.2520/gitg-41.obscpio differ: char 28, line 1
++++++ gitg.obsinfo ++++++
--- /var/tmp/diff_new_pack.45mdNn/_old 2021-12-29 21:11:31.670313704 +0100
+++ /var/tmp/diff_new_pack.45mdNn/_new 2021-12-29 21:11:31.674313707 +0100
@@ -1,6 +1,6 @@
name: gitg
-version: 3.32.1+312
-mtime: 1601468286
-commit: 6e12068f5ab9d9e76c27b1207d4133ac82472a24
+version: 41
+mtime: 1640610174
+commit: 1adffb6b3ce97626f2ed23885d6d0e44a2764cbe
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rubygem-zeitwerk for openSUSE:Factory checked in at 2021-12-29 21:10:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-zeitwerk (Old)
and /work/SRC/openSUSE:Factory/.rubygem-zeitwerk.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-zeitwerk"
Wed Dec 29 21:10:59 2021 rev:10 rq:943007 version:2.5.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-zeitwerk/rubygem-zeitwerk.changes 2021-12-22 20:19:09.743877867 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-zeitwerk.new.2520/rubygem-zeitwerk.changes 2021-12-29 21:11:30.206312499 +0100
@@ -1,0 +2,11 @@
+Wed Dec 29 01:18:19 UTC 2021 - Manuel Schnitzer <mschnitzer(a)suse.com>
+
+- updated to version 2.5.2
+
+ * When `Module#autoload` triggers the autovivification of an implicit
+ namespace, `$LOADED_FEATURES` now gets the correspoding directory
+ pushed. This is just a tweak to Zeitwerk's `Kernel#require` decoration.
+ That way it acts more like the original, and cooperates better with
+ other potential `Kernel#require` wrappers, like Bootsnap's.
+
+-------------------------------------------------------------------
Old:
----
zeitwerk-2.5.1.gem
New:
----
zeitwerk-2.5.2.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-zeitwerk.spec ++++++
--- /var/tmp/diff_new_pack.pU3yp3/_old 2021-12-29 21:11:30.670312881 +0100
+++ /var/tmp/diff_new_pack.pU3yp3/_new 2021-12-29 21:11:30.674312884 +0100
@@ -24,7 +24,7 @@
#
Name: rubygem-zeitwerk
-Version: 2.5.1
+Version: 2.5.2
Release: 0
%define mod_name zeitwerk
%define mod_full_name %{mod_name}-%{version}
++++++ zeitwerk-2.5.1.gem -> zeitwerk-2.5.2.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md
--- old/README.md 2021-10-21 00:00:32.000000000 +0200
+++ new/README.md 2021-12-27 13:00:43.000000000 +0100
@@ -50,8 +50,8 @@
- [Rules of thumb](#rules-of-thumb)
- [Debuggers](#debuggers)
- [debug.rb](#debugrb)
- - [Break](#break)
- [Byebug](#byebug)
+ - [Break](#break)
- [Pronunciation](#pronunciation)
- [Supported Ruby versions](#supported-ruby-versions)
- [Testing](#testing)
@@ -810,7 +810,9 @@
end
```
-That file does not define a constant path after the path name and you need to tell Zeitwerk:
+`Kernel` is already defined by Ruby so the module cannot be autoloaded. Also, that file does not define a constant path after the path name. Therefore, Zeitwerk should not process it at all.
+
+The extension can still coexist with the rest of the project, you only need to tell Zeitwerk to ignore it:
```ruby
kernel_ext = "#{__dir__}/my_gem/core_ext/kernel.rb"
@@ -826,6 +828,14 @@
loader.setup
```
+Now, that file has to be loaded manually with `require` or `require_relative`:
+
+```ruby
+require_relative "my_gem/core_ext/kernel"
+```
+
+and you can do that anytime, before configuring the loader, or after configuring the loader, does not matter.
+
<a id="markdown-use-case-the-adapter-pattern" name="use-case-the-adapter-pattern"></a>
#### Use case: The adapter pattern
@@ -973,17 +983,19 @@
<a id="markdown-debugrb" name="debugrb"></a>
#### debug.rb
-The new [debug.rb](https://github.com/ruby/debug) gem and Zeitwerk seem to be compatible, as far as I can tell. This is the new debugger that is going to ship with Ruby 3.1.
+The new [debug.rb](https://github.com/ruby/debug) gem and Zeitwerk are mostly compatible. This is the new debugger that is going to ship with Ruby 3.1.
-<a id="markdown-break" name="break"></a>
-#### Break
-
-Zeitwerk works fine with [@gsamokovarov](https://github.com/gsamokovarov)'s [Break](https://github.com/gsamokovarov/break) debugger.
+There's one exception, though: Due to a technical limitation of tracepoints, explicit namespaces are not autoloaded while expressions are evaluated in the REPL. See [ruby/debug#408](https://github.com/ruby/debug/issues/408).
<a id="markdown-byebug" name="byebug"></a>
#### Byebug
-Zeitwerk and [Byebug](https://github.com/deivid-rodriguez/byebug) are incompatible, classes or modules that belong to [explicit namespaces](#explicit-namespaces) are not autoloaded inside a Byebug session. See [this issue](https://github.com/deivid-rodriguez/byebug/issues/564#issuecomment-4… for further details.
+Zeitwerk and [Byebug](https://github.com/deivid-rodriguez/byebug) have a similar edge incompatibility.
+
+<a id="markdown-break" name="break"></a>
+#### Break
+
+Zeitwerk works fine with [@gsamokovarov](https://github.com/gsamokovarov)'s [Break](https://github.com/gsamokovarov/break) debugger.
<a id="markdown-pronunciation" name="pronunciation"></a>
## Pronunciation
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/zeitwerk/kernel.rb new/lib/zeitwerk/kernel.rb
--- old/lib/zeitwerk/kernel.rb 2021-10-21 00:00:32.000000000 +0200
+++ new/lib/zeitwerk/kernel.rb 2021-12-27 13:00:43.000000000 +0100
@@ -24,22 +24,23 @@
def require(path)
if loader = Zeitwerk::Registry.loader_for(path)
if path.end_with?(".rb")
- zeitwerk_original_require(path).tap do |required|
- loader.on_file_autoloaded(path) if required
- end
+ required = zeitwerk_original_require(path)
+ loader.on_file_autoloaded(path) if required
+ required
else
loader.on_dir_autoloaded(path)
+ $LOADED_FEATURES << path
true
end
else
- zeitwerk_original_require(path).tap do |required|
- if required
- abspath = $LOADED_FEATURES.last
- if loader = Zeitwerk::Registry.loader_for(abspath)
- loader.on_file_autoloaded(abspath)
- end
+ required = zeitwerk_original_require(path)
+ if required
+ abspath = $LOADED_FEATURES.last
+ if loader = Zeitwerk::Registry.loader_for(abspath)
+ loader.on_file_autoloaded(abspath)
end
end
+ required
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/zeitwerk/loader.rb new/lib/zeitwerk/loader.rb
--- old/lib/zeitwerk/loader.rb 2021-10-21 00:00:32.000000000 +0200
+++ new/lib/zeitwerk/loader.rb 2021-12-27 13:00:43.000000000 +0100
@@ -1,7 +1,6 @@
# frozen_string_literal: true
require "set"
-require "securerandom"
module Zeitwerk
class Loader
@@ -124,13 +123,7 @@
# @sig () -> void
def unload
mutex.synchronize do
- # We are going to keep track of the files that were required by our
- # autoloads to later remove them from $LOADED_FEATURES, thus making them
- # loadable by Kernel#require again.
- #
- # Directories are not stored in $LOADED_FEATURES, keeping track of files
- # is enough.
- unloaded_files = Set.new
+ abspaths_of_unloaded_crefs = Set.new
autoloads.each do |abspath, (parent, cname)|
if parent.autoload?(cname)
@@ -140,7 +133,7 @@
# and the constant path would escape unloadable_cpath? This is just
# defensive code to clean things up as much as we are able to.
unload_cref(parent, cname)
- unloaded_files.add(abspath) if ruby?(abspath)
+ abspaths_of_unloaded_crefs.add(abspath)
end
end
@@ -151,10 +144,14 @@
end
unload_cref(parent, cname)
- unloaded_files.add(abspath) if ruby?(abspath)
+ abspaths_of_unloaded_crefs.add(abspath)
end
- unless unloaded_files.empty?
+ unless abspaths_of_unloaded_crefs.empty?
+ # We remove these abspaths from $LOADED_FEATURES because, otherwise,
+ # `require`'s idempotence would prevent newly defined autoloads from
+ # loading them again.
+ #
# Bootsnap decorates Kernel#require to speed it up using a cache and
# this optimization does not check if $LOADED_FEATURES has the file.
#
@@ -166,7 +163,7 @@
# Rails applications may depend on bootsnap, so for unloading to work
# in that setting it is preferable that we restrict our API choice to
# one of those methods.
- $LOADED_FEATURES.reject! { |file| unloaded_files.member?(file) }
+ $LOADED_FEATURES.reject! { |file| abspaths_of_unloaded_crefs.member?(file) }
end
autoloads.clear
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/zeitwerk/version.rb new/lib/zeitwerk/version.rb
--- old/lib/zeitwerk/version.rb 2021-10-21 00:00:32.000000000 +0200
+++ new/lib/zeitwerk/version.rb 2021-12-27 13:00:43.000000000 +0100
@@ -1,5 +1,5 @@
# frozen_string_literal: true
module Zeitwerk
- VERSION = "2.5.1"
+ VERSION = "2.5.2"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2021-10-21 00:00:32.000000000 +0200
+++ new/metadata 2021-12-27 13:00:43.000000000 +0100
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: zeitwerk
version: !ruby/object:Gem::Version
- version: 2.5.1
+ version: 2.5.2
platform: ruby
authors:
- Xavier Noria
autorequire:
bindir: bin
cert_chain: []
-date: 2021-10-20 00:00:00.000000000 Z
+date: 2021-12-27 00:00:00.000000000 Z
dependencies: []
description: |2
Zeitwerk implements constant autoloading with Ruby semantics. Each gem
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pytest-astropy-header for openSUSE:Factory checked in at 2021-12-29 21:10:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pytest-astropy-header (Old)
and /work/SRC/openSUSE:Factory/.python-pytest-astropy-header.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pytest-astropy-header"
Wed Dec 29 21:10:58 2021 rev:6 rq:943003 version:0.2.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pytest-astropy-header/python-pytest-astropy-header.changes 2020-12-09 22:22:05.655716327 +0100
+++ /work/SRC/openSUSE:Factory/.python-pytest-astropy-header.new.2520/python-pytest-astropy-header.changes 2021-12-29 21:11:29.422311855 +0100
@@ -1,0 +2,16 @@
+Tue Dec 28 17:37:12 UTC 2021 - Ben Greiner <code(a)bnavigator.de>
+
+- Update to v0.2
+ * Suppressed PytestAssertRewriteWarning. [#4]
+ * Do not show astropy-helpers version in packages that don't use
+ it. [#16]
+ * Removed compatibility code for astropy < 4.0, and for
+ astropy-helpers. [#32]
+ * Removed astropy dependency. [#19, #34]
+ * Bumped minimum supported Python version to 3.7 and various
+ infrastructure updates. [#23, #39]
+- Drop patches
+ * pytest-astropy-header-pr16-no-helper-version.patch
+ * pytest-astropy-header-pr29-nohelpers.patch
+
+-------------------------------------------------------------------
Old:
----
pytest-astropy-header-0.1.2.tar.gz
pytest-astropy-header-pr16-no-helper-version.patch
pytest-astropy-header-pr29-nohelpers.patch
New:
----
pytest-astropy-header-0.2.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pytest-astropy-header.spec ++++++
--- /var/tmp/diff_new_pack.NkMuIm/_old 2021-12-29 21:11:29.942312282 +0100
+++ /var/tmp/diff_new_pack.NkMuIm/_new 2021-12-29 21:11:29.950312289 +0100
@@ -1,7 +1,7 @@
#
-# spec file for package python-pytest-astropy-header
+# spec file
#
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,38 +16,36 @@
#
-%define modname pytest-astropy-header
-%define skip_python2 1
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
-# current astropy in TW requires python >= 3.7
-%define skip_python36 1
%bcond_without test
%else
%define psuffix %{nil}
%bcond_with test
%endif
+%define modname pytest-astropy-header
+%{?!python_module:%define python_module() python3-%{**}}
+%define skip_python2 1
+%define skip_python36 1
Name: python-%{modname}%{psuffix}
-Version: 0.1.2
+Version: 0.2.0
Release: 0
Summary: Pytest plugin to add diagnostic information to the header of the test output
License: BSD-3-Clause
Group: Productivity/Scientific/Astronomy
URL: https://github.com/astropy/pytest-astropy-header
Source: https://files.pythonhosted.org/packages/source/p/%{modname}/%{modname}-%{ve…
-Patch0: https://github.com/astropy/pytest-astropy-header/pull/16.patch#/pytest-astr…
-Patch1: https://github.com/astropy/pytest-astropy-header/pull/29.patch#/pytest-astr…
+BuildRequires: %{python_module base >= 3.7}
BuildRequires: %{python_module setuptools >= 30.3.0}
+BuildRequires: %{python_module setuptools_scm}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-pytest >= 2.8
+Requires: python-pytest >= 4.6
%if %{with test}
-# Patch0 and Patch1: helpers got removed in astropy 4
BuildRequires: %{python_module astropy >= 4.0}
BuildRequires: %{python_module numpy}
-BuildRequires: %{python_module pytest >= 2.8}
+BuildRequires: %{python_module pytest >= 4.6}
%endif
%python_subpackages
@@ -81,7 +79,7 @@
%doc CHANGES.rst README.rst
%license LICENSE.rst
%{python_sitelib}/pytest_astropy_header
-%{python_sitelib}/pytest_astropy_header-%{version}-py*.egg-info
+%{python_sitelib}/pytest_astropy_header-%{version}*-info
%endif
%changelog
++++++ pytest-astropy-header-0.1.2.tar.gz -> pytest-astropy-header-0.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/.github/workflows/ci_workflows.yml new/pytest-astropy-header-0.2.0/.github/workflows/ci_workflows.yml
--- old/pytest-astropy-header-0.1.2/.github/workflows/ci_workflows.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/.github/workflows/ci_workflows.yml 2021-12-27 18:22:00.000000000 +0100
@@ -0,0 +1,56 @@
+name: CI
+
+on:
+ pull_request:
+ push:
+ schedule:
+ # Run every Sunday at 05:53 UTC
+ - cron: 53 5 * * 0
+
+jobs:
+ tests:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: true
+ matrix:
+ include:
+ - os: ubuntu-latest
+ python-version: 3.7
+ toxenv: py37-test-pytest46
+ - os: windows-latest
+ python-version: 3.7
+ toxenv: py37-test-pytest50
+ - os: macos-latest
+ python-version: 3.8
+ toxenv: py38-test-pytest51
+ - os: ubuntu-latest
+ python-version: 3.8
+ toxenv: py38-test-pytest52
+ - os: windows-latest
+ python-version: 3.9
+ toxenv: py39-test-pytest53
+ - os: macos-latest
+ python-version: 3.9
+ toxenv: py39-test-pytest60
+ - os: ubuntu-latest
+ python-version: 3.9
+ toxenv: py39-test-pytest61
+ - os: windows-latest
+ python-version: '3.10'
+ toxenv: py310-test-pytest62
+ - os: ubuntu-latest
+ python-version: '3.10'
+ toxenv: py310-test-pytestdev
+
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: Install tox
+ run: python -m pip install tox
+ - name: Run tox
+ run: tox -v -e ${{ matrix.toxenv }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/.github/workflows/publish.yml new/pytest-astropy-header-0.2.0/.github/workflows/publish.yml
--- old/pytest-astropy-header-0.1.2/.github/workflows/publish.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/.github/workflows/publish.yml 2021-12-27 18:22:00.000000000 +0100
@@ -0,0 +1,47 @@
+name: Release
+
+on:
+ pull_request:
+ push:
+ tags:
+ - '*'
+
+jobs:
+ build-n-publish:
+ name: Build and publish Python ���� distributions ���� to PyPI
+ runs-on: ubuntu-latest
+ if: ((github.event_name == 'push' && startsWith(github.ref, 'refs/tags')) || contains(github.event.pull_request.labels.*.name, 'Build wheels'))
+
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.8
+
+ - name: Install python-build and twine
+ run: python -m pip install pip build "twine>=3.3" -U
+
+ - name: Build package
+ run: python -m build --sdist --wheel .
+
+ - name: List result
+ run: ls -l dist
+
+ - name: Check wheel
+ run: python -m twine check --strict dist/*
+
+ - name: Test package
+ run: |
+ cd ..
+ python -m venv testenv
+ testenv/bin/pip install astropy pytest pytest-astropy-header/dist/*.whl
+ testenv/bin/pytest pytest-astropy-header/tests
+
+ - name: Publish distribution ���� to PyPI
+ if: startsWith(github.ref, 'refs/tags')
+ uses: pypa/gh-action-pypi-publish@release/v1
+ with:
+ user: __token__
+ password: ${{ secrets.PYPI_API_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/.gitignore new/pytest-astropy-header-0.2.0/.gitignore
--- old/pytest-astropy-header-0.1.2/.gitignore 2019-10-07 20:13:45.000000000 +0200
+++ new/pytest-astropy-header-0.2.0/.gitignore 2021-12-27 18:22:00.000000000 +0100
@@ -12,6 +12,8 @@
# Other generated files
MANIFEST
+pytest_astropy_header/version.py
+pip-wheel-metadata/
# Sphinx
_build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/.travis.yml new/pytest-astropy-header-0.2.0/.travis.yml
--- old/pytest-astropy-header-0.1.2/.travis.yml 2019-12-05 15:19:02.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/.travis.yml 1970-01-01 01:00:00.000000000 +0100
@@ -1,48 +0,0 @@
-# We set the language to c because python isn't supported on the MacOS X nodes
-# on Travis. However, the language ends up being irrelevant anyway, since we
-# install Python ourselves using conda.
-language: c
-
-os:
- - linux
- - windows
-
-# Use Travis' container-based architecture
-sudo: false
-
-env:
- global:
- # The following versions are the 'default' for tests, unless
- # overidden underneath. They are defined here in order to save having
- # to repeat them for all configurations.
- - PYTHON_VERSION=3.7
- - PYTEST_VERSION=4
- - PYTEST_COMMAND='pytest'
- - NUMPY_VERSION=stable
- - CONDA_DEPENDENCIES='astropy'
-
- matrix:
- - PYTHON_VERSION=2.7 NUMPY_VERSION=1.15 PYTEST_COMMAND='py.test'
- - PYTHON_VERSION=2.7 NUMPY_VERSION=1.15
- - PYTHON_VERSION=3.5 NUMPY_VERSION=1.15
- - PYTHON_VERSION=3.6
- - PYTHON_VERSION=3.7 PYTEST_VERSION=3.8
- - PYTHON_VERSION=3.7 PYTEST_VERSION=3.9
- - PYTHON_VERSION=3.7
-
-matrix:
- include:
- # Try a run on OSX with latest versions of python and pytest
- - os: osx
- env: PYTHON_VERSION=3.7
-
- # Try a run against latest pytest
- - env: PYTHON_VERSION=3.7 PYTEST_VERSION=5
-
-install:
- - git clone git://github.com/astropy/ci-helpers.git
- - source ci-helpers/travis/setup_conda.sh
- - pip install -e .
-
-script:
- - $PYTEST_COMMAND
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/CHANGES.rst new/pytest-astropy-header-0.2.0/CHANGES.rst
--- old/pytest-astropy-header-0.1.2/CHANGES.rst 2019-12-18 15:53:08.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/CHANGES.rst 2021-12-27 18:22:00.000000000 +0100
@@ -1,3 +1,16 @@
+0.2.0 (2021-12-27)
+==================
+
+- Suppressed ``PytestAssertRewriteWarning``. [#4]
+
+- Do not show astropy-helpers version in packages that don't use it. [#16]
+
+- Removed compatibility code for ``astropy`` < 4.0, and for ``astropy-helpers``. [#32]
+
+- Removed ``astropy`` dependency. [#19, #34]
+
+- Bumped minimum supported Python version to 3.7 and various infrastructure updates. [#23, #39]
+
0.1.2 (2019-12-18)
==================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/PKG-INFO new/pytest-astropy-header-0.2.0/PKG-INFO
--- old/pytest-astropy-header-0.1.2/PKG-INFO 2019-12-18 15:54:13.525991200 +0100
+++ new/pytest-astropy-header-0.2.0/PKG-INFO 2021-12-27 18:22:16.337073300 +0100
@@ -1,190 +1,231 @@
Metadata-Version: 2.1
Name: pytest-astropy-header
-Version: 0.1.2
+Version: 0.2.0
Summary: pytest plugin to add diagnostic information to the header of the test output
-Home-page: http://astropy.org
+Home-page: https://github.com/astropy/pytest-astropy-header
Author: The Astropy Developers
Author-email: astropy.team(a)gmail.com
License: BSD 3-Clause License
-Description: =====================
- pytest-astropy-header
- =====================
-
- This plugin package provides a way to include information about the system,
- Python installation, and select dependencies in the header of the output when
- running pytest. It can be used with packages that are not affiliated with the
- Astropy project, but is optimized for use with astropy-related projects.
-
- Installation
- ------------
-
- The ``pytest-astropy-header`` plugin can be installed using ``pip``::
-
- $ pip install pytest-astropy-header
-
- It is also possible to install the latest development version from the source
- repository::
-
- $ git clone https://github.com/astropy/pytest-astropy-header
- $ cd pytest-astropy-header
- $ pip install .
-
- In either case, the plugin will automatically be registered for use with
- ``pytest``.
-
- User guide
- ----------
-
- The plugin provided by this package makes it easy to include a header
- with diagnostic information before running the tests, e.g.::
-
- Running tests in astropy.
-
- Date: 2019-09-02T23:33:43
-
- Platform: Darwin-18.7.0-x86_64-i386-64bit
-
- Executable: /Users/tom/python/dev/bin/python3.7
-
- Full Python Version:
- 3.7.4 (v3.7.4:e09359112e, Jul 8 2019, 14:54:52)
- [Clang 6.0 (clang-600.0.57)]
-
- encodings: sys: utf-8, locale: UTF-8, filesystem: utf-8
- byteorder: little
- float info: dig: 15, mant_dig: 15
-
- Package versions:
- numpy: 1.16.4
- scipy: 1.3.0
- matplotlib: 3.1.1
- h5py: 2.9.0
- pandas: 0.24.2
- astropy: 4.0.dev25634
-
- Using Astropy options: remote_data: none.
-
- The most robust way to enable the plugin in a way that will work regardless of
- how the tests are run (e.g. via ``python setup.py test``, ``pytest``, or
- ``package.test()``) is to add the following to a ``conftest.py`` file that is
- inside your package::
-
- def pytest_configure(config):
- config.option.astropy_header = True
-
-
- By default, a few packages will be shown, but you may want to customize how the
- packages appear. As for enabling the plugin, the most robust way to do this to
- be compatible with different astropy versions is via the ``conftest.py`` file::
-
- from pytest_astropy_header.display import PYTEST_HEADER_MODULES, TESTED_VERSIONS
-
- def pytest_configure(config):
- config.option.astropy_header = True
- PYTEST_HEADER_MODULES.pop('Pandas')
- PYTEST_HEADER_MODULES['scikit-image'] = 'skimage'
-
- The key to ``PYTEST_HEADER_MODULES`` should be the name that will be displayed
- in the header, and the value should be the name of the Python module.
-
- Migrating from the astropy header plugin to pytest-astropy
- ----------------------------------------------------------
-
- Before the v4.0 release of the core astropy package, the plugin that handles the
- header of the testing output described above lived in
- ``astropy.tests.plugins.display``. A few steps are now needed to update packages
- to make sure that only the pytest-astropy version is used instead. These should
- be done in addition to the configuration mentioned in the previous section.
-
- First, you should be able to significantly simplify the ``conftest.py`` file by
- replacing e.g.::
-
- from astropy.version import version as astropy_version
- if astropy_version < '3.0':
- # With older versions of Astropy, we actually need to import the pytest
- # plugins themselves in order to make them discoverable by pytest.
- from astropy.tests.pytest_plugins import *
- else:
- # As of Astropy 3.0, the pytest plugins provided by Astropy are
- # automatically made available when Astropy is installed. This means it's
- # not necessary to import them here, but we still need to import global
- # variables that are used for configuration.
- from astropy.tests.plugins.display import (pytest_report_header,
- PYTEST_HEADER_MODULES,
- TESTED_VERSIONS)
-
- # Customize the following lines to add/remove entries from
- # the list of packages for which version numbers are displayed when running
- # the tests. Making it pass for KeyError is essential in some cases when
- # the package uses other astropy affiliated packages.
- try:
- PYTEST_HEADER_MODULES['Astropy'] = 'astropy'
- del PYTEST_HEADER_MODULES['h5py']
- except KeyError:
- pass
-
- # This is to figure out the package version, rather than
- # using Astropy's
- from .version import version, astropy_helpers_version
-
- packagename = os.path.basename(os.path.dirname(__file__))
- TESTED_VERSIONS[packagename] = version
- TESTED_VERSIONS['astropy_helpers'] = astropy_helpers_version
-
- with e.g.::
-
- import os
-
- from astropy.version import version as astropy_version
- if astropy_version < '3.0':
- from astropy.tests.pytest_plugins import *
- del pytest_report_header
- else:
- from pytest_astropy_header.display import PYTEST_HEADER_MODULES, TESTED_VERSIONS
-
-
- def pytest_configure(config):
-
- config.option.astropy_header = True
-
- PYTEST_HEADER_MODULES.pop('Pandas', None)
- PYTEST_HEADER_MODULES['scikit-image'] = 'skimage'
-
- from .version import version, astropy_helpers_version
- packagename = os.path.basename(os.path.dirname(__file__))
- TESTED_VERSIONS[packagename] = version
- TESTED_VERSIONS['astropy_helpers'] = astropy_helpers_version
-
- Note that while you will need to use a recent version of pytest-astropy for this
- to work, it should work with Astropy 2.0 onwards without requiring all the
- ``try...except`` for imports.
-
- Next check all of your ``conftest.py`` files and be sure to remove the old
- plugin from lists such as::
-
- pytest_plugins = [
- 'astropy.tests.plugins.display',
- ]
-
- Development Status
- ------------------
-
- Questions, bug reports, and feature requests can be submitted on `github`_.
-
- .. _github: https://github.com/astropy/pytest-astropy
-
- License
- -------
-
- This package is licensed under a 3-clause BSD style license - see the
- ``LICENSE.rst`` file.
-
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: BSD License
+Requires-Python: >=3.7
+Description-Content-Type: text/x-rst
Provides-Extra: test
+License-File: LICENSE.rst
+
+=====================
+pytest-astropy-header
+=====================
+
+.. image:: https://img.shields.io/pypi/v/pytest-astropy-header.svg
+ :target: https://pypi.python.org/pypi/pytest-astropy-header
+
+.. image:: https://github.com/astropy/pytest-astropy-header/workflows/CI/badge.svg
+ :target: https://github.com/astropy/pytest-astropy-header/actions
+ :alt: CI Status
+
+This plugin package provides a way to include information about the system,
+Python installation, and select dependencies in the header of the output when
+running pytest. It can be used with packages that are not affiliated with the
+Astropy project, but is optimized for use with Astropy-related projects.
+
+Installation
+------------
+
+The ``pytest-astropy-header`` plugin can be installed using ``pip``::
+
+ $ pip install pytest-astropy-header
+
+It is also possible to install the latest development version from the source
+repository::
+
+ $ git clone https://github.com/astropy/pytest-astropy-header
+ $ cd pytest-astropy-header
+ $ pip install .
+
+In either case, the plugin will automatically be registered for use with
+``pytest``.
+
+User guide
+----------
+
+The plugin provided by this package makes it easy to include a header
+with diagnostic information before running the tests, e.g.::
+
+ Running tests in astropy.
+
+ Date: 2019-09-02T23:33:43
+
+ Platform: Darwin-18.7.0-x86_64-i386-64bit
+
+ Executable: /Users/tom/python/dev/bin/python3.7
+
+ Full Python Version:
+ 3.7.4 (v3.7.4:e09359112e, Jul 8 2019, 14:54:52)
+ [Clang 6.0 (clang-600.0.57)]
+
+ encodings: sys: utf-8, locale: UTF-8, filesystem: utf-8
+ byteorder: little
+ float info: dig: 15, mant_dig: 15
+
+ Package versions:
+ numpy: 1.16.4
+ scipy: 1.3.0
+ matplotlib: 3.1.1
+ h5py: 2.9.0
+ pandas: 0.24.2
+ astropy: 4.0.dev25634
+
+ Using Astropy options: remote_data: none.
+
+The most robust way to enable the plugin in a way that will work regardless of
+how the tests are run (e.g. via ``pytest``, or ``package.test()``)
+is to add the following to a ``conftest.py`` file that is
+inside your package::
+
+ def pytest_configure(config):
+ config.option.astropy_header = True
+
+**or** add the following to your ``setup.cfg``::
+
+ [tool:pytest]
+ astropy_header = true
+
+By default, a few packages will be shown, but you may want to customize how the
+packages appear. As for enabling the plugin, the most robust way to do this to
+be compatible with different astropy versions is via the ``conftest.py`` file::
+
+ try:
+ from pytest_astropy_header.display import PYTEST_HEADER_MODULES, TESTED_VERSIONS
+ except ImportError: # In case this plugin is not installed
+ PYTEST_HEADER_MODULES = {}
+ TESTED_VERSIONS = {}
+
+ # This really depends on how you set up your package version,
+ # modify as needed.
+ from mypackage import __version__ as version
+
+ def pytest_configure(config):
+ config.option.astropy_header = True # If you do not have it in setup.cfg
+ PYTEST_HEADER_MODULES.pop('Pandas')
+ PYTEST_HEADER_MODULES['scikit-image'] = 'skimage'
+ TESTED_VERSIONS['mypackage'] = version
+
+The key to ``PYTEST_HEADER_MODULES`` should be the name that will be displayed
+in the header, and the value should be the name of the Python module.
+
+If you would like to append other text to the end of the header, you can do this
+by implementing your own ``pytest_report_header()`` function in the
+``conftest.py`` file in your package. For example, to add a custom footer to the
+end of the Astropy header, you could define::
+
+ def pytest_report_header(config):
+ footer = ("This is some custom text that will appear after the "
+ "Astropy pytest header!")
+ return footer + "\n"
+
+
+Migrating from the astropy header plugin to pytest-astropy-header
+-----------------------------------------------------------------
+
+**Note: pytest-astropy-header no longer supports astropy<4.
+This section is only kept for historical reason.**
+
+Before the v4.0 release of the core astropy package, the plugin that handles the
+header of the testing output described above lived in
+``astropy.tests.plugins.display``. A few steps are now needed to update packages
+to make sure that only the pytest-astropy-header version is used instead. These should
+be done in addition to the configuration mentioned in the previous section.
+
+First, you should be able to significantly simplify the ``conftest.py`` file by
+replacing e.g.::
+
+ from astropy.version import version as astropy_version
+ if astropy_version < '3.0':
+ # With older versions of Astropy, we actually need to import the pytest
+ # plugins themselves in order to make them discoverable by pytest.
+ from astropy.tests.pytest_plugins import *
+ else:
+ # As of Astropy 3.0, the pytest plugins provided by Astropy are
+ # automatically made available when Astropy is installed. This means it's
+ # not necessary to import them here, but we still need to import global
+ # variables that are used for configuration.
+ from astropy.tests.plugins.display import (pytest_report_header,
+ PYTEST_HEADER_MODULES,
+ TESTED_VERSIONS)
+
+ # Customize the following lines to add/remove entries from
+ # the list of packages for which version numbers are displayed when running
+ # the tests. Making it pass for KeyError is essential in some cases when
+ # the package uses other astropy affiliated packages.
+ try:
+ PYTEST_HEADER_MODULES['Astropy'] = 'astropy'
+ del PYTEST_HEADER_MODULES['h5py']
+ except KeyError:
+ pass
+
+ # This is to figure out the package version, rather than
+ # using Astropy's
+ from .version import version, astropy_helpers_version
+
+ packagename = os.path.basename(os.path.dirname(__file__))
+ TESTED_VERSIONS[packagename] = version
+ TESTED_VERSIONS['astropy_helpers'] = astropy_helpers_version
+
+with e.g.::
+
+ import os
+
+ from astropy.version import version as astropy_version
+ if astropy_version < '3.0':
+ from astropy.tests.pytest_plugins import *
+ del pytest_report_header
+ else:
+ from pytest_astropy_header.display import PYTEST_HEADER_MODULES, TESTED_VERSIONS
+
+
+ def pytest_configure(config):
+
+ config.option.astropy_header = True
+
+ PYTEST_HEADER_MODULES.pop('Pandas', None)
+ PYTEST_HEADER_MODULES['scikit-image'] = 'skimage'
+
+ from .version import version, astropy_helpers_version
+ packagename = os.path.basename(os.path.dirname(__file__))
+ TESTED_VERSIONS[packagename] = version
+ TESTED_VERSIONS['astropy_helpers'] = astropy_helpers_version
+
+Note that while you will need to use a recent version of pytest-astropy for this
+to work, it should work with Astropy 2.0 onwards without requiring all the
+``try...except`` for imports.
+
+Next check all of your ``conftest.py`` files and be sure to remove the old
+plugin from lists such as::
+
+ pytest_plugins = [
+ 'astropy.tests.plugins.display',
+ ]
+
+Development Status
+------------------
+
+Questions, bug reports, and feature requests can be submitted on `github`_.
+
+.. _github: https://github.com/astropy/pytest-astropy
+
+License
+-------
+
+This package is licensed under a 3-clause BSD style license - see the
+``LICENSE.rst`` file.
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/README.rst new/pytest-astropy-header-0.2.0/README.rst
--- old/pytest-astropy-header-0.1.2/README.rst 2019-10-07 20:14:41.000000000 +0200
+++ new/pytest-astropy-header-0.2.0/README.rst 2021-12-27 18:22:00.000000000 +0100
@@ -2,10 +2,17 @@
pytest-astropy-header
=====================
+.. image:: https://img.shields.io/pypi/v/pytest-astropy-header.svg
+ :target: https://pypi.python.org/pypi/pytest-astropy-header
+
+.. image:: https://github.com/astropy/pytest-astropy-header/workflows/CI/badge.svg
+ :target: https://github.com/astropy/pytest-astropy-header/actions
+ :alt: CI Status
+
This plugin package provides a way to include information about the system,
Python installation, and select dependencies in the header of the output when
running pytest. It can be used with packages that are not affiliated with the
-Astropy project, but is optimized for use with astropy-related projects.
+Astropy project, but is optimized for use with Astropy-related projects.
Installation
------------
@@ -57,35 +64,62 @@
Using Astropy options: remote_data: none.
The most robust way to enable the plugin in a way that will work regardless of
-how the tests are run (e.g. via ``python setup.py test``, ``pytest``, or
-``package.test()``) is to add the following to a ``conftest.py`` file that is
+how the tests are run (e.g. via ``pytest``, or ``package.test()``)
+is to add the following to a ``conftest.py`` file that is
inside your package::
def pytest_configure(config):
config.option.astropy_header = True
+**or** add the following to your ``setup.cfg``::
+
+ [tool:pytest]
+ astropy_header = true
By default, a few packages will be shown, but you may want to customize how the
packages appear. As for enabling the plugin, the most robust way to do this to
be compatible with different astropy versions is via the ``conftest.py`` file::
- from pytest_astropy_header.display import PYTEST_HEADER_MODULES, TESTED_VERSIONS
+ try:
+ from pytest_astropy_header.display import PYTEST_HEADER_MODULES, TESTED_VERSIONS
+ except ImportError: # In case this plugin is not installed
+ PYTEST_HEADER_MODULES = {}
+ TESTED_VERSIONS = {}
+
+ # This really depends on how you set up your package version,
+ # modify as needed.
+ from mypackage import __version__ as version
def pytest_configure(config):
- config.option.astropy_header = True
+ config.option.astropy_header = True # If you do not have it in setup.cfg
PYTEST_HEADER_MODULES.pop('Pandas')
PYTEST_HEADER_MODULES['scikit-image'] = 'skimage'
+ TESTED_VERSIONS['mypackage'] = version
The key to ``PYTEST_HEADER_MODULES`` should be the name that will be displayed
in the header, and the value should be the name of the Python module.
-Migrating from the astropy header plugin to pytest-astropy
-----------------------------------------------------------
+If you would like to append other text to the end of the header, you can do this
+by implementing your own ``pytest_report_header()`` function in the
+``conftest.py`` file in your package. For example, to add a custom footer to the
+end of the Astropy header, you could define::
+
+ def pytest_report_header(config):
+ footer = ("This is some custom text that will appear after the "
+ "Astropy pytest header!")
+ return footer + "\n"
+
+
+Migrating from the astropy header plugin to pytest-astropy-header
+-----------------------------------------------------------------
+
+**Note: pytest-astropy-header no longer supports astropy<4.
+This section is only kept for historical reason.**
Before the v4.0 release of the core astropy package, the plugin that handles the
header of the testing output described above lived in
``astropy.tests.plugins.display``. A few steps are now needed to update packages
-to make sure that only the pytest-astropy version is used instead. These should
+to make sure that only the pytest-astropy-header version is used instead. These should
be done in addition to the configuration mentioned in the previous section.
First, you should be able to significantly simplify the ``conftest.py`` file by
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/pyproject.toml new/pytest-astropy-header-0.2.0/pyproject.toml
--- old/pytest-astropy-header-0.1.2/pyproject.toml 1970-01-01 01:00:00.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/pyproject.toml 2021-12-27 18:22:00.000000000 +0100
@@ -0,0 +1,5 @@
+[build-system]
+requires = ["setuptools>=30.3.0",
+ "setuptools_scm",
+ "wheel"]
+build-backend = 'setuptools.build_meta'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/pytest_astropy_header/__init__.py new/pytest-astropy-header-0.2.0/pytest_astropy_header/__init__.py
--- old/pytest-astropy-header-0.1.2/pytest_astropy_header/__init__.py 2019-12-18 15:53:48.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/pytest_astropy_header/__init__.py 2021-12-27 18:22:00.000000000 +0100
@@ -1 +1,3 @@
-__version__ = '0.1.2'
+# Licensed under a 3-clause BSD style license - see LICENSE.rst
+
+from .version import version as __version__ # noqa
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/pytest_astropy_header/display.py new/pytest-astropy-header-0.2.0/pytest_astropy_header/display.py
--- old/pytest-astropy-header-0.1.2/pytest_astropy_header/display.py 2019-12-18 15:51:35.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/pytest_astropy_header/display.py 2021-12-27 18:22:00.000000000 +0100
@@ -2,54 +2,24 @@
"""
This plugin provides customization of the header displayed by pytest for
reporting purposes.
-"""
-import os
-import sys
+PYTEST_DONT_REWRITE
+
+"""
import datetime
+import importlib
import locale
-import math
+import os
+import sys
from collections import OrderedDict
-from distutils.version import LooseVersion
+TESTED_VERSIONS = {}
PYTEST_HEADER_MODULES = OrderedDict([('Numpy', 'numpy'),
('Scipy', 'scipy'),
('Matplotlib', 'matplotlib'),
('h5py', 'h5py'),
('Pandas', 'pandas')])
-try:
-
- from astropy import __version__ as astropy_version
- from astropy.tests.helper import ignore_warnings
- from astropy.utils.introspection import resolve_name
-
-except ImportError:
-
- ASTROPY_INSTALLED = False
-
-else:
-
- ASTROPY_INSTALLED = True
-
- TESTED_VERSIONS = OrderedDict([('Astropy', astropy_version)])
-
- if astropy_version == 'unknown': # assume developer version
- ASTROPY_LT_30 = ASTROPY_LT_40 = False
- else:
- ASTROPY_LT_30 = LooseVersion(astropy_version) < '3.0'
- ASTROPY_LT_40 = LooseVersion(astropy_version) < '4.0'
-
- # If using a version of astropy that has the display plugin, we make sure that
- # we use those variables for listing the packages, in case we choose to let
- # that plugin handle things below (which we do if that plugin is active).
- if ASTROPY_LT_30:
- from astropy.tests.pytest_plugins import (PYTEST_HEADER_MODULES,
- TESTED_VERSIONS)
- elif ASTROPY_LT_40:
- from astropy.tests.plugins.display import (PYTEST_HEADER_MODULES,
- TESTED_VERSIONS)
-
def pytest_addoption(parser):
@@ -66,14 +36,6 @@
def pytest_report_header(config):
- if not ASTROPY_INSTALLED:
- return
-
- # If the astropy display plugin is registered, we stop now and let it
- # handle the header.
- if ASTROPY_LT_40 and config.pluginmanager.hasplugin('astropy.tests.plugins.display'):
- return
-
if not config.getoption("astropy_header") and not config.getini("astropy_header"):
return
@@ -98,15 +60,9 @@
args = config.args
- # TESTED_VERSIONS can contain the affiliated package version, too
- if len(TESTED_VERSIONS) > 1:
- for pkg, version in TESTED_VERSIONS.items():
- if pkg not in ['Astropy', 'astropy_helpers']:
- s = "\nRunning tests with {} version {}.\n".format(
- pkg, version)
- else:
- s = "\nRunning tests with Astropy version {}.\n".format(
- TESTED_VERSIONS['Astropy'])
+ s = ''
+ for pkg, version in TESTED_VERSIONS.items():
+ s += f"\nRunning tests with {pkg} version {version}.\n"
# Per https://github.com/astropy/astropy/pull/4204, strip the rootdir from
# each directory argument
@@ -124,13 +80,14 @@
s += "Date: {}\n\n".format(datetime.datetime.now().isoformat()[:19])
+ import warnings
from platform import platform
plat = platform()
if isinstance(plat, bytes):
plat = plat.decode(stdoutencoding, 'replace')
- s += "Platform: {plat}\n\n".format(plat=plat)
- s += "Executable: {executable}\n\n".format(executable=sys.executable)
- s += "Full Python Version: \n{version}\n\n".format(version=sys.version)
+ s += f"Platform: {plat}\n\n"
+ s += f"Executable: {sys.executable}\n\n"
+ s += f"Full Python Version: \n{sys.version}\n\n"
s += "encodings: sys: {}, locale: {}, filesystem: {}".format(
sys.getdefaultencoding(),
@@ -138,7 +95,7 @@
sys.getfilesystemencoding())
s += '\n'
- s += "byteorder: {byteorder}\n".format(byteorder=sys.byteorder)
+ s += f"byteorder: {sys.byteorder}\n"
s += "float info: dig: {0.dig}, mant_dig: {0.dig}\n\n".format(
sys.float_info)
@@ -146,28 +103,17 @@
for module_display, module_name in packages_to_display.items():
try:
- with ignore_warnings(DeprecationWarning):
- module = resolve_name(module_name)
+ with warnings.catch_warnings():
+ warnings.filterwarnings('ignore', category=DeprecationWarning)
+ module = importlib.import_module(module_name)
except ImportError:
- s += "{module_display}: not available\n".format(module_display=module_display)
+ s += f"{module_display}: not available\n"
else:
try:
version = module.__version__
except AttributeError:
version = 'unknown (no __version__ attribute)'
- s += "{module_display}: {version}\n".format(module_display=module_display, version=version)
-
- # Helpers version
- if 'astropy_helpers' in TESTED_VERSIONS:
- astropy_helpers_version = TESTED_VERSIONS['astropy_helpers']
- else:
- try:
- from astropy.version import astropy_helpers_version
- except ImportError:
- astropy_helpers_version = None
-
- if astropy_helpers_version:
- s += "astropy-helpers: {astropy_helpers_version}\n".format(astropy_helpers_version=astropy_helpers_version)
+ s += f"{module_display}: {version}\n"
s += "\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/pytest_astropy_header/version.py new/pytest-astropy-header-0.2.0/pytest_astropy_header/version.py
--- old/pytest-astropy-header-0.1.2/pytest_astropy_header/version.py 1970-01-01 01:00:00.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/pytest_astropy_header/version.py 2021-12-27 18:22:16.000000000 +0100
@@ -0,0 +1,5 @@
+# coding: utf-8
+# file generated by setuptools_scm
+# don't change, don't track in version control
+version = '0.2.0'
+version_tuple = (0, 2, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/pytest_astropy_header.egg-info/PKG-INFO new/pytest-astropy-header-0.2.0/pytest_astropy_header.egg-info/PKG-INFO
--- old/pytest-astropy-header-0.1.2/pytest_astropy_header.egg-info/PKG-INFO 2019-12-18 15:54:13.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/pytest_astropy_header.egg-info/PKG-INFO 2021-12-27 18:22:16.000000000 +0100
@@ -1,190 +1,231 @@
Metadata-Version: 2.1
Name: pytest-astropy-header
-Version: 0.1.2
+Version: 0.2.0
Summary: pytest plugin to add diagnostic information to the header of the test output
-Home-page: http://astropy.org
+Home-page: https://github.com/astropy/pytest-astropy-header
Author: The Astropy Developers
Author-email: astropy.team(a)gmail.com
License: BSD 3-Clause License
-Description: =====================
- pytest-astropy-header
- =====================
-
- This plugin package provides a way to include information about the system,
- Python installation, and select dependencies in the header of the output when
- running pytest. It can be used with packages that are not affiliated with the
- Astropy project, but is optimized for use with astropy-related projects.
-
- Installation
- ------------
-
- The ``pytest-astropy-header`` plugin can be installed using ``pip``::
-
- $ pip install pytest-astropy-header
-
- It is also possible to install the latest development version from the source
- repository::
-
- $ git clone https://github.com/astropy/pytest-astropy-header
- $ cd pytest-astropy-header
- $ pip install .
-
- In either case, the plugin will automatically be registered for use with
- ``pytest``.
-
- User guide
- ----------
-
- The plugin provided by this package makes it easy to include a header
- with diagnostic information before running the tests, e.g.::
-
- Running tests in astropy.
-
- Date: 2019-09-02T23:33:43
-
- Platform: Darwin-18.7.0-x86_64-i386-64bit
-
- Executable: /Users/tom/python/dev/bin/python3.7
-
- Full Python Version:
- 3.7.4 (v3.7.4:e09359112e, Jul 8 2019, 14:54:52)
- [Clang 6.0 (clang-600.0.57)]
-
- encodings: sys: utf-8, locale: UTF-8, filesystem: utf-8
- byteorder: little
- float info: dig: 15, mant_dig: 15
-
- Package versions:
- numpy: 1.16.4
- scipy: 1.3.0
- matplotlib: 3.1.1
- h5py: 2.9.0
- pandas: 0.24.2
- astropy: 4.0.dev25634
-
- Using Astropy options: remote_data: none.
-
- The most robust way to enable the plugin in a way that will work regardless of
- how the tests are run (e.g. via ``python setup.py test``, ``pytest``, or
- ``package.test()``) is to add the following to a ``conftest.py`` file that is
- inside your package::
-
- def pytest_configure(config):
- config.option.astropy_header = True
-
-
- By default, a few packages will be shown, but you may want to customize how the
- packages appear. As for enabling the plugin, the most robust way to do this to
- be compatible with different astropy versions is via the ``conftest.py`` file::
-
- from pytest_astropy_header.display import PYTEST_HEADER_MODULES, TESTED_VERSIONS
-
- def pytest_configure(config):
- config.option.astropy_header = True
- PYTEST_HEADER_MODULES.pop('Pandas')
- PYTEST_HEADER_MODULES['scikit-image'] = 'skimage'
-
- The key to ``PYTEST_HEADER_MODULES`` should be the name that will be displayed
- in the header, and the value should be the name of the Python module.
-
- Migrating from the astropy header plugin to pytest-astropy
- ----------------------------------------------------------
-
- Before the v4.0 release of the core astropy package, the plugin that handles the
- header of the testing output described above lived in
- ``astropy.tests.plugins.display``. A few steps are now needed to update packages
- to make sure that only the pytest-astropy version is used instead. These should
- be done in addition to the configuration mentioned in the previous section.
-
- First, you should be able to significantly simplify the ``conftest.py`` file by
- replacing e.g.::
-
- from astropy.version import version as astropy_version
- if astropy_version < '3.0':
- # With older versions of Astropy, we actually need to import the pytest
- # plugins themselves in order to make them discoverable by pytest.
- from astropy.tests.pytest_plugins import *
- else:
- # As of Astropy 3.0, the pytest plugins provided by Astropy are
- # automatically made available when Astropy is installed. This means it's
- # not necessary to import them here, but we still need to import global
- # variables that are used for configuration.
- from astropy.tests.plugins.display import (pytest_report_header,
- PYTEST_HEADER_MODULES,
- TESTED_VERSIONS)
-
- # Customize the following lines to add/remove entries from
- # the list of packages for which version numbers are displayed when running
- # the tests. Making it pass for KeyError is essential in some cases when
- # the package uses other astropy affiliated packages.
- try:
- PYTEST_HEADER_MODULES['Astropy'] = 'astropy'
- del PYTEST_HEADER_MODULES['h5py']
- except KeyError:
- pass
-
- # This is to figure out the package version, rather than
- # using Astropy's
- from .version import version, astropy_helpers_version
-
- packagename = os.path.basename(os.path.dirname(__file__))
- TESTED_VERSIONS[packagename] = version
- TESTED_VERSIONS['astropy_helpers'] = astropy_helpers_version
-
- with e.g.::
-
- import os
-
- from astropy.version import version as astropy_version
- if astropy_version < '3.0':
- from astropy.tests.pytest_plugins import *
- del pytest_report_header
- else:
- from pytest_astropy_header.display import PYTEST_HEADER_MODULES, TESTED_VERSIONS
-
-
- def pytest_configure(config):
-
- config.option.astropy_header = True
-
- PYTEST_HEADER_MODULES.pop('Pandas', None)
- PYTEST_HEADER_MODULES['scikit-image'] = 'skimage'
-
- from .version import version, astropy_helpers_version
- packagename = os.path.basename(os.path.dirname(__file__))
- TESTED_VERSIONS[packagename] = version
- TESTED_VERSIONS['astropy_helpers'] = astropy_helpers_version
-
- Note that while you will need to use a recent version of pytest-astropy for this
- to work, it should work with Astropy 2.0 onwards without requiring all the
- ``try...except`` for imports.
-
- Next check all of your ``conftest.py`` files and be sure to remove the old
- plugin from lists such as::
-
- pytest_plugins = [
- 'astropy.tests.plugins.display',
- ]
-
- Development Status
- ------------------
-
- Questions, bug reports, and feature requests can be submitted on `github`_.
-
- .. _github: https://github.com/astropy/pytest-astropy
-
- License
- -------
-
- This package is licensed under a 3-clause BSD style license - see the
- ``LICENSE.rst`` file.
-
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: BSD License
+Requires-Python: >=3.7
+Description-Content-Type: text/x-rst
Provides-Extra: test
+License-File: LICENSE.rst
+
+=====================
+pytest-astropy-header
+=====================
+
+.. image:: https://img.shields.io/pypi/v/pytest-astropy-header.svg
+ :target: https://pypi.python.org/pypi/pytest-astropy-header
+
+.. image:: https://github.com/astropy/pytest-astropy-header/workflows/CI/badge.svg
+ :target: https://github.com/astropy/pytest-astropy-header/actions
+ :alt: CI Status
+
+This plugin package provides a way to include information about the system,
+Python installation, and select dependencies in the header of the output when
+running pytest. It can be used with packages that are not affiliated with the
+Astropy project, but is optimized for use with Astropy-related projects.
+
+Installation
+------------
+
+The ``pytest-astropy-header`` plugin can be installed using ``pip``::
+
+ $ pip install pytest-astropy-header
+
+It is also possible to install the latest development version from the source
+repository::
+
+ $ git clone https://github.com/astropy/pytest-astropy-header
+ $ cd pytest-astropy-header
+ $ pip install .
+
+In either case, the plugin will automatically be registered for use with
+``pytest``.
+
+User guide
+----------
+
+The plugin provided by this package makes it easy to include a header
+with diagnostic information before running the tests, e.g.::
+
+ Running tests in astropy.
+
+ Date: 2019-09-02T23:33:43
+
+ Platform: Darwin-18.7.0-x86_64-i386-64bit
+
+ Executable: /Users/tom/python/dev/bin/python3.7
+
+ Full Python Version:
+ 3.7.4 (v3.7.4:e09359112e, Jul 8 2019, 14:54:52)
+ [Clang 6.0 (clang-600.0.57)]
+
+ encodings: sys: utf-8, locale: UTF-8, filesystem: utf-8
+ byteorder: little
+ float info: dig: 15, mant_dig: 15
+
+ Package versions:
+ numpy: 1.16.4
+ scipy: 1.3.0
+ matplotlib: 3.1.1
+ h5py: 2.9.0
+ pandas: 0.24.2
+ astropy: 4.0.dev25634
+
+ Using Astropy options: remote_data: none.
+
+The most robust way to enable the plugin in a way that will work regardless of
+how the tests are run (e.g. via ``pytest``, or ``package.test()``)
+is to add the following to a ``conftest.py`` file that is
+inside your package::
+
+ def pytest_configure(config):
+ config.option.astropy_header = True
+
+**or** add the following to your ``setup.cfg``::
+
+ [tool:pytest]
+ astropy_header = true
+
+By default, a few packages will be shown, but you may want to customize how the
+packages appear. As for enabling the plugin, the most robust way to do this to
+be compatible with different astropy versions is via the ``conftest.py`` file::
+
+ try:
+ from pytest_astropy_header.display import PYTEST_HEADER_MODULES, TESTED_VERSIONS
+ except ImportError: # In case this plugin is not installed
+ PYTEST_HEADER_MODULES = {}
+ TESTED_VERSIONS = {}
+
+ # This really depends on how you set up your package version,
+ # modify as needed.
+ from mypackage import __version__ as version
+
+ def pytest_configure(config):
+ config.option.astropy_header = True # If you do not have it in setup.cfg
+ PYTEST_HEADER_MODULES.pop('Pandas')
+ PYTEST_HEADER_MODULES['scikit-image'] = 'skimage'
+ TESTED_VERSIONS['mypackage'] = version
+
+The key to ``PYTEST_HEADER_MODULES`` should be the name that will be displayed
+in the header, and the value should be the name of the Python module.
+
+If you would like to append other text to the end of the header, you can do this
+by implementing your own ``pytest_report_header()`` function in the
+``conftest.py`` file in your package. For example, to add a custom footer to the
+end of the Astropy header, you could define::
+
+ def pytest_report_header(config):
+ footer = ("This is some custom text that will appear after the "
+ "Astropy pytest header!")
+ return footer + "\n"
+
+
+Migrating from the astropy header plugin to pytest-astropy-header
+-----------------------------------------------------------------
+
+**Note: pytest-astropy-header no longer supports astropy<4.
+This section is only kept for historical reason.**
+
+Before the v4.0 release of the core astropy package, the plugin that handles the
+header of the testing output described above lived in
+``astropy.tests.plugins.display``. A few steps are now needed to update packages
+to make sure that only the pytest-astropy-header version is used instead. These should
+be done in addition to the configuration mentioned in the previous section.
+
+First, you should be able to significantly simplify the ``conftest.py`` file by
+replacing e.g.::
+
+ from astropy.version import version as astropy_version
+ if astropy_version < '3.0':
+ # With older versions of Astropy, we actually need to import the pytest
+ # plugins themselves in order to make them discoverable by pytest.
+ from astropy.tests.pytest_plugins import *
+ else:
+ # As of Astropy 3.0, the pytest plugins provided by Astropy are
+ # automatically made available when Astropy is installed. This means it's
+ # not necessary to import them here, but we still need to import global
+ # variables that are used for configuration.
+ from astropy.tests.plugins.display import (pytest_report_header,
+ PYTEST_HEADER_MODULES,
+ TESTED_VERSIONS)
+
+ # Customize the following lines to add/remove entries from
+ # the list of packages for which version numbers are displayed when running
+ # the tests. Making it pass for KeyError is essential in some cases when
+ # the package uses other astropy affiliated packages.
+ try:
+ PYTEST_HEADER_MODULES['Astropy'] = 'astropy'
+ del PYTEST_HEADER_MODULES['h5py']
+ except KeyError:
+ pass
+
+ # This is to figure out the package version, rather than
+ # using Astropy's
+ from .version import version, astropy_helpers_version
+
+ packagename = os.path.basename(os.path.dirname(__file__))
+ TESTED_VERSIONS[packagename] = version
+ TESTED_VERSIONS['astropy_helpers'] = astropy_helpers_version
+
+with e.g.::
+
+ import os
+
+ from astropy.version import version as astropy_version
+ if astropy_version < '3.0':
+ from astropy.tests.pytest_plugins import *
+ del pytest_report_header
+ else:
+ from pytest_astropy_header.display import PYTEST_HEADER_MODULES, TESTED_VERSIONS
+
+
+ def pytest_configure(config):
+
+ config.option.astropy_header = True
+
+ PYTEST_HEADER_MODULES.pop('Pandas', None)
+ PYTEST_HEADER_MODULES['scikit-image'] = 'skimage'
+
+ from .version import version, astropy_helpers_version
+ packagename = os.path.basename(os.path.dirname(__file__))
+ TESTED_VERSIONS[packagename] = version
+ TESTED_VERSIONS['astropy_helpers'] = astropy_helpers_version
+
+Note that while you will need to use a recent version of pytest-astropy for this
+to work, it should work with Astropy 2.0 onwards without requiring all the
+``try...except`` for imports.
+
+Next check all of your ``conftest.py`` files and be sure to remove the old
+plugin from lists such as::
+
+ pytest_plugins = [
+ 'astropy.tests.plugins.display',
+ ]
+
+Development Status
+------------------
+
+Questions, bug reports, and feature requests can be submitted on `github`_.
+
+.. _github: https://github.com/astropy/pytest-astropy
+
+License
+-------
+
+This package is licensed under a 3-clause BSD style license - see the
+``LICENSE.rst`` file.
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/pytest_astropy_header.egg-info/SOURCES.txt new/pytest-astropy-header-0.2.0/pytest_astropy_header.egg-info/SOURCES.txt
--- old/pytest-astropy-header-0.1.2/pytest_astropy_header.egg-info/SOURCES.txt 2019-12-18 15:54:13.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/pytest_astropy_header.egg-info/SOURCES.txt 2021-12-27 18:22:16.000000000 +0100
@@ -1,13 +1,17 @@
.gitignore
-.travis.yml
CHANGES.rst
LICENSE.rst
MANIFEST.in
README.rst
+pyproject.toml
setup.cfg
setup.py
+tox.ini
+.github/workflows/ci_workflows.yml
+.github/workflows/publish.yml
pytest_astropy_header/__init__.py
pytest_astropy_header/display.py
+pytest_astropy_header/version.py
pytest_astropy_header.egg-info/PKG-INFO
pytest_astropy_header.egg-info/SOURCES.txt
pytest_astropy_header.egg-info/dependency_links.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/pytest_astropy_header.egg-info/requires.txt new/pytest-astropy-header-0.2.0/pytest_astropy_header.egg-info/requires.txt
--- old/pytest-astropy-header-0.1.2/pytest_astropy_header.egg-info/requires.txt 2019-12-18 15:54:13.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/pytest_astropy_header.egg-info/requires.txt 2021-12-27 18:22:16.000000000 +0100
@@ -1,9 +1,5 @@
-pytest>=2.8
+pytest>=4.6
[test]
-pytest
-pytest-cov
-codecov
-coverage
numpy
-astropy
+astropy>=4.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/setup.cfg new/pytest-astropy-header-0.2.0/setup.cfg
--- old/pytest-astropy-header-0.1.2/setup.cfg 2019-12-18 15:54:13.526912500 +0100
+++ new/pytest-astropy-header-0.2.0/setup.cfg 2021-12-27 18:22:16.337073300 +0100
@@ -1,40 +1,44 @@
[metadata]
name = pytest-astropy-header
-version = attr:pytest_astropy_header.__version__
description = pytest plugin to add diagnostic information to the header of the test output
long_description = file:README.rst
+long_description_content_type = text/x-rst
author = The Astropy Developers
author_email = astropy.team(a)gmail.com
license = BSD 3-Clause License
-url = http://astropy.org
+url = https://github.com/astropy/pytest-astropy-header
classifiers =
Development Status :: 3 - Alpha
Intended Audience :: Developers
- Programming Language :: Python
- Programming Language :: Python :: 2
- Programming Language :: Python :: 3
+ Programming Language :: Python :: 3 :: Only
+ Programming Language :: Python :: 3.7
+ Programming Language :: Python :: 3.8
+ Programming Language :: Python :: 3.9
+ Programming Language :: Python :: 3.10
Operating System :: OS Independent
License :: OSI Approved :: BSD License
[options]
zip_safe = False
packages = find:
+python_requires = >=3.7
+setup_requires =
+ setuptools_scm
install_requires =
- pytest>=2.8
+ pytest>=4.6
[options.extras_require]
test =
- pytest
- pytest-cov
- codecov
- coverage
numpy
- astropy
+ astropy>=4.0
[options.entry_points]
pytest11 =
pytest_astropy_header = pytest_astropy_header.display
+[flake8]
+max-line-length = 125
+
[egg_info]
tag_build =
tag_date = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/setup.py new/pytest-astropy-header-0.2.0/setup.py
--- old/pytest-astropy-header-0.1.2/setup.py 2019-10-07 20:13:45.000000000 +0200
+++ new/pytest-astropy-header-0.2.0/setup.py 2021-12-27 18:22:00.000000000 +0100
@@ -1,14 +1,6 @@
#!/usr/bin/env python
-import sys
-import setuptools
-from distutils.version import LooseVersion
+import os
from setuptools import setup
-# Setuptools 30.3.0 or later is needed for setup.cfg options to be used
-if LooseVersion(setuptools.__version__) < LooseVersion('30.3.0'):
- sys.stderr.write("ERROR: sphinx-automodapi requires setuptools 30.3.0 or "
- "later (found {0})".format(setuptools.__version__))
- sys.exit(1)
-
-setup()
+setup(use_scm_version={'write_to': os.path.join('pytest_astropy_header', 'version.py')})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/tests/test_display.py new/pytest-astropy-header-0.2.0/tests/test_display.py
--- old/pytest-astropy-header-0.1.2/tests/test_display.py 2019-12-18 15:51:35.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/tests/test_display.py 2021-12-27 18:22:00.000000000 +0100
@@ -1,5 +1,4 @@
import pytest
-
import numpy
NUMPY_VERSION = numpy.__version__
@@ -42,16 +41,15 @@
def pytest_configure(config):
config.option.astropy_header = True
""")
- testdir.inline_run()
+ testdir.inline_run()
out, err = capsys.readouterr()
lines = extract_package_version_lines(out)
- assert len(lines) == 6
+ assert len(lines) == 5
assert lines[0].startswith('Numpy: ')
assert lines[1].startswith('Scipy: ')
assert lines[2].startswith('Matplotlib: ')
assert lines[3].startswith('h5py: ')
assert lines[4].startswith('Pandas: ')
- assert lines[5].startswith('astropy-helpers: ')
@pytest.mark.parametrize('method', ['ini', 'conftest'])
@@ -100,9 +98,8 @@
testdir.inline_run()
out, err = capsys.readouterr()
lines = extract_package_version_lines(out)
- assert len(lines) == 2
- assert lines[0] == 'numpy: {NUMPY_VERSION}'.format(NUMPY_VERSION=NUMPY_VERSION)
- assert lines[1].startswith('astropy-helpers: ')
+ assert len(lines) == 1
+ assert lines[0] == f'numpy: {NUMPY_VERSION}'
@pytest.mark.parametrize('method', ['cli', 'ini', 'ini_list', 'conftest'])
@@ -135,10 +132,9 @@
out, err = capsys.readouterr()
print(out)
lines = extract_package_version_lines(out)
- assert len(lines) == 3
- assert lines[0] == 'numpy: {NUMPY_VERSION}'.format(NUMPY_VERSION=NUMPY_VERSION)
+ assert len(lines) == 2
+ assert lines[0] == f'numpy: {NUMPY_VERSION}'
assert lines[1].startswith('pandas')
- assert lines[2].startswith('astropy-helpers: ')
@pytest.mark.parametrize('method', ['cli', 'ini', 'ini_list', 'conftest'])
@@ -169,9 +165,8 @@
testdir.inline_run()
out, err = capsys.readouterr()
lines = extract_package_version_lines(out)
- assert len(lines) == 2
+ assert len(lines) == 1
assert lines[0] == 'apackagethatdoesnotexist: not available'
- assert lines[1].startswith('astropy-helpers: ')
def test_modify_in_conftest(testdir, capsys):
@@ -188,11 +183,10 @@
out, err = capsys.readouterr()
assert err == ''
lines = extract_package_version_lines(out)
- assert len(lines) == 6
+ assert len(lines) == 5
assert lines[0].startswith('Numpy: ')
assert lines[1].startswith('Scipy: ')
assert lines[2].startswith('Matplotlib: ')
assert lines[3].startswith('h5py: ')
assert lines[4].startswith('scikit-image: ')
- assert lines[5].startswith('astropy-helpers: ')
assert 'Running tests with fakepackage version 1.0.2' in out
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pytest-astropy-header-0.1.2/tox.ini new/pytest-astropy-header-0.2.0/tox.ini
--- old/pytest-astropy-header-0.1.2/tox.ini 1970-01-01 01:00:00.000000000 +0100
+++ new/pytest-astropy-header-0.2.0/tox.ini 2021-12-27 18:22:00.000000000 +0100
@@ -0,0 +1,33 @@
+[tox]
+envlist =
+ py{37,38,39,310}-test{,-devdeps}
+ codestyle
+requires =
+ setuptools >= 30.3.0
+ pip >= 19.3.1
+isolated_build = true
+
+[testenv]
+changedir = .tmp/{envname}
+description = run tests
+extras = test
+deps =
+ pytest46: pytest==4.6.*
+ pytest50: pytest==5.0.*
+ pytest51: pytest==5.1.*
+ pytest52: pytest==5.2.*
+ pytest53: pytest==5.3.*
+ pytest60: pytest==6.0.*
+ pytest61: pytest==6.1.*
+ pytest62: pytest==6.2.*
+ pytestdev: git+https://github.com/pytest-dev/pytest#egg=pytest
+
+commands =
+ pip freeze
+ pytest {toxinidir}/tests {posargs}
+
+[testenv:codestyle]
+skip_install = true
+description = check code style, e.g. with flake8
+deps = flake8
+commands = flake8 pytest_astropy_header --count
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-coloredlogs for openSUSE:Factory checked in at 2021-12-29 21:10:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-coloredlogs (Old)
and /work/SRC/openSUSE:Factory/.python-coloredlogs.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-coloredlogs"
Wed Dec 29 21:10:57 2021 rev:10 rq:942996 version:15.0.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-coloredlogs/python-coloredlogs.changes 2021-11-17 01:15:48.810192266 +0100
+++ /work/SRC/openSUSE:Factory/.python-coloredlogs.new.2520/python-coloredlogs.changes 2021-12-29 21:11:28.802311345 +0100
@@ -1,0 +2,7 @@
+Mon Dec 27 11:16:51 UTC 2021 - ecsos <ecsos(a)opensuse.org>
+
+- Fix build error for Leap.
+ - Set right versions to BuildRequires and Requires.
+- Disable python2 and python36 because End of support.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-coloredlogs.spec ++++++
--- /var/tmp/diff_new_pack.N3jLCF/_old 2021-12-29 21:11:29.262311723 +0100
+++ /var/tmp/diff_new_pack.N3jLCF/_new 2021-12-29 21:11:29.270311730 +0100
@@ -18,6 +18,8 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
+%define skip_python2 1
+%define skip_python36 1
Name: python-coloredlogs
Version: 15.0.1
Release: 0
@@ -30,7 +32,7 @@
# With using alternatives, we don't have versionless command in time of %%check
Patch0: test_cli_conversion_test.patch
BuildRequires: %{python_module capturer >= 2.4}
-BuildRequires: %{python_module humanfriendly >= 7.1}
+BuildRequires: %{python_module humanfriendly >= 9.1}
BuildRequires: %{python_module mock >= 1.0.1}
BuildRequires: %{python_module pytest >= 3.0.3}
BuildRequires: %{python_module pytest-cov >= 2.3.1}
@@ -39,7 +41,7 @@
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-capturer >= 2.4
-Requires: python-humanfriendly >= 7.1
+Requires: python-humanfriendly >= 9.1
Requires(post): update-alternatives
Requires(postun): update-alternatives
Recommends: python-verboselogs >= 1.7
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-easy-thumbnails for openSUSE:Factory checked in at 2021-12-29 21:10:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-easy-thumbnails (Old)
and /work/SRC/openSUSE:Factory/.python-easy-thumbnails.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-easy-thumbnails"
Wed Dec 29 21:10:56 2021 rev:3 rq:942991 version:2.8
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-easy-thumbnails/python-easy-thumbnails.changes 2021-10-15 23:04:01.162099849 +0200
+++ /work/SRC/openSUSE:Factory/.python-easy-thumbnails.new.2520/python-easy-thumbnails.changes 2021-12-29 21:11:27.450310233 +0100
@@ -1,0 +2,14 @@
+Fri Dec 24 06:03:51 UTC 2021 - John Vandenberg <jayvdb(a)gmail.com>
+
+- Update to v2.8
+ * Add support for thumbnailing SVG images.
+- from v2.7.2
+ * Add support for Django 3.2 and Python-3.10.
+ * Do not close image after loading content.
+ * In management command thumbnail_cleanup, replace print-statements
+ against stdout.write.
+ * Use Python format strings whereever possible.
+- from v2.7.1
+ * Add support for Django 3.1
+
+-------------------------------------------------------------------
Old:
----
easy-thumbnails-2.7.tar.gz
New:
----
easy-thumbnails-2.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-easy-thumbnails.spec ++++++
--- /var/tmp/diff_new_pack.41VN3o/_old 2021-12-29 21:11:27.918310618 +0100
+++ /var/tmp/diff_new_pack.41VN3o/_new 2021-12-29 21:11:27.922310621 +0100
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-easy-thumbnails
-Version: 2.7
+Version: 2.8
Release: 0
Summary: Easy thumbnails for Django
License: BSD-2-Clause
@@ -29,12 +29,19 @@
BuildRequires: dos2unix
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-Django >= 1.11
+Requires: python-Django >= 2.2
+Requires: python-lxml
Requires: python-Pillow
+Requires: python-reportlab
+Requires: python-svglib
BuildArch: noarch
# SECTION test requirements
-BuildRequires: %{python_module Django >= 1.11}
+BuildRequires: %{python_module Django >= 2.2}
+BuildRequires: %{python_module cssselect2}
BuildRequires: %{python_module Pillow}
+BuildRequires: %{python_module lxml}
+BuildRequires: %{python_module reportlab}
+BuildRequires: %{python_module svglib}
# /SECTION
%python_subpackages
++++++ easy-thumbnails-2.7.tar.gz -> easy-thumbnails-2.8.tar.gz ++++++
++++ 2969 lines of diff (skipped)
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-pynetbox for openSUSE:Factory checked in at 2021-12-29 21:10:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pynetbox (Old)
and /work/SRC/openSUSE:Factory/.python-pynetbox.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pynetbox"
Wed Dec 29 21:10:57 2021 rev:27 rq:942995 version:6.4.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pynetbox/python-pynetbox.changes 2021-12-07 00:00:57.856228697 +0100
+++ /work/SRC/openSUSE:Factory/.python-pynetbox.new.2520/python-pynetbox.changes 2021-12-29 21:11:28.130310792 +0100
@@ -1,0 +2,12 @@
+Mon Dec 27 10:54:26 UTC 2021 - Martin Hauke <mardnh(a)gmx.de>
+
+- Update to version 6.4.1
+ * Adds support for HTTP 409 when allocation is unsuccessful.
+ * Set ObjectChanges.postchange_data and .prechange_data to
+ JsonField.
+- Update to version 6.4.0
+ * Use display field in Record.__str__() to support future models
+ * Update docstrings for DetailEndpoint and Prefixes.available_*
+ * Add wireless app (for NetBox 3.1+)
+
+-------------------------------------------------------------------
Old:
----
pynetbox-6.3.0.tar.gz
New:
----
pynetbox-6.4.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-pynetbox.spec ++++++
--- /var/tmp/diff_new_pack.O2tGn6/_old 2021-12-29 21:11:28.590311170 +0100
+++ /var/tmp/diff_new_pack.O2tGn6/_new 2021-12-29 21:11:28.594311174 +0100
@@ -19,7 +19,7 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-pynetbox
-Version: 6.3.0
+Version: 6.4.1
Release: 0
Summary: NetBox API client library
License: Apache-2.0
++++++ pynetbox-6.3.0.tar.gz -> pynetbox-6.4.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/.gitignore new/pynetbox-6.4.1/.gitignore
--- old/pynetbox-6.3.0/.gitignore 2021-12-04 23:55:21.000000000 +0100
+++ new/pynetbox-6.4.1/.gitignore 2021-12-22 03:07:03.000000000 +0100
@@ -101,3 +101,6 @@
# Other git repos checked out locally
.netbox-docker-*/
.devicetype-library/
+
+# Visual Studio Code settings
+.vscode/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/PKG-INFO new/pynetbox-6.4.1/PKG-INFO
--- old/pynetbox-6.3.0/PKG-INFO 2021-12-04 23:55:32.527155400 +0100
+++ new/pynetbox-6.4.1/PKG-INFO 2021-12-22 03:07:15.604708400 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pynetbox
-Version: 6.3.0
+Version: 6.4.1
Summary: NetBox API client library
Home-page: https://github.com/digitalocean/pynetbox
Author: Zach Moody
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/docs/index.rst new/pynetbox-6.4.1/docs/index.rst
--- old/pynetbox-6.3.0/docs/index.rst 2021-12-04 23:55:21.000000000 +0100
+++ new/pynetbox-6.4.1/docs/index.rst 2021-12-22 03:07:03.000000000 +0100
@@ -27,5 +27,3 @@
==================
* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/pynetbox/core/api.py new/pynetbox-6.4.1/pynetbox/core/api.py
--- old/pynetbox-6.3.0/pynetbox/core/api.py 2021-12-04 23:55:21.000000000 +0100
+++ new/pynetbox-6.4.1/pynetbox/core/api.py 2021-12-22 03:07:03.000000000 +0100
@@ -37,6 +37,7 @@
* extras
* virtualization
* users
+ * wireless (since NetBox 3.1)
Calling any of these attributes will return
:py:class:`.App` which exposes endpoints as attributes.
@@ -103,6 +104,7 @@
self.extras = App(self, "extras")
self.virtualization = App(self, "virtualization")
self.users = App(self, "users")
+ self.wireless = App(self, "wireless")
self.plugins = PluginsApp(self)
@property
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/pynetbox/core/app.py new/pynetbox-6.4.1/pynetbox/core/app.py
--- old/pynetbox-6.3.0/pynetbox/core/app.py 2021-12-04 23:55:21.000000000 +0100
+++ new/pynetbox-6.4.1/pynetbox/core/app.py 2021-12-22 03:07:03.000000000 +0100
@@ -15,7 +15,15 @@
"""
from pynetbox.core.endpoint import Endpoint
from pynetbox.core.query import Request
-from pynetbox.models import dcim, ipam, virtualization, circuits, extras, users
+from pynetbox.models import (
+ dcim,
+ ipam,
+ virtualization,
+ circuits,
+ extras,
+ users,
+ wireless,
+)
class App(object):
@@ -41,6 +49,7 @@
"virtualization": virtualization,
"extras": extras,
"users": users,
+ "wireless": wireless,
}
def _setmodel(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/pynetbox/core/endpoint.py new/pynetbox-6.4.1/pynetbox/core/endpoint.py
--- old/pynetbox-6.3.0/pynetbox/core/endpoint.py 2021-12-04 23:55:21.000000000 +0100
+++ new/pynetbox-6.4.1/pynetbox/core/endpoint.py 2021-12-22 03:07:03.000000000 +0100
@@ -545,7 +545,7 @@
class DetailEndpoint(object):
- """Enables read/write Operations on detail endpoints.
+ """Enables read/write operations on detail endpoints.
Endpoints like ``available-ips`` that are detail routes off
traditional endpoints are handled with this class.
@@ -572,8 +572,8 @@
E.g. ``.list(method='get_facts')`` would be converted to
``.../?method=get_facts``.
- :returns: A dictionary or list of dictionaries retrieved from
- NetBox.
+ :returns: A :py:class:`.Record` object or list of :py:class:`.Record` objects created
+ from data retrieved from NetBox.
"""
req = Request(**self.request_kwargs).get(add_params=kwargs)
@@ -596,8 +596,8 @@
object. Defaults to empty dict which will create a single
item with default values.
- :returns: A dictionary or list of dictionaries its created in
- NetBox.
+ :returns: A :py:class:`.Record` object or list of :py:class:`.Record` objects created
+ from data created in NetBox.
"""
data = data or {}
req = Request(**self.request_kwargs).post(data)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/pynetbox/core/query.py new/pynetbox-6.4.1/pynetbox/core/query.py
--- old/pynetbox-6.3.0/pynetbox/core/query.py 2021-12-04 23:55:21.000000000 +0100
+++ new/pynetbox-6.4.1/pynetbox/core/query.py 2021-12-22 03:07:03.000000000 +0100
@@ -73,7 +73,8 @@
"""Allocation Exception
Used with available-ips/available-prefixes when there is no
- room for allocation and NetBox returns 204 No Content.
+ room for allocation and NetBox returns 204 No Content (before
+ NetBox 3.1.1) or 409 Conflict (since NetBox 3.1.1+).
"""
def __init__(self, message):
@@ -268,7 +269,7 @@
url_override or self.url, headers=headers, params=params, json=data
)
- if req.status_code == 204 and verb == "post":
+ if req.status_code in [204, 409] and verb == "post":
raise AllocationError(req)
if verb == "delete":
if req.ok:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/pynetbox/core/response.py new/pynetbox-6.4.1/pynetbox/core/response.py
--- old/pynetbox-6.3.0/pynetbox/core/response.py 2021-12-04 23:55:21.000000000 +0100
+++ new/pynetbox-6.4.1/pynetbox/core/response.py 2021-12-22 03:07:03.000000000 +0100
@@ -79,14 +79,14 @@
:Examples:
- To see how many results are in a query by calling ``len()``.
+ To see how many results are in a query by calling ``len()``:
>>> x = nb.dcim.devices.all()
>>> len(x)
123
>>>
- Simple iteration of the results.
+ Simple iteration of the results:
>>> devices = nb.dcim.devices.all()
>>> for device in devices:
@@ -173,40 +173,40 @@
class Record(object):
- """Create python objects from netbox API responses.
+ """Create Python objects from NetBox API responses.
- Creates an object from a NetBox response passed as `values`.
+ Creates an object from a NetBox response passed as ``values``.
Nested dicts that represent other endpoints are also turned
- into Record objects. All fields are then assigned to the
+ into ``Record`` objects. All fields are then assigned to the
object's attributes. If a missing attr is requested
(e.g. requesting a field that's only present on a full response on
- a Record made from a nested response) the pynetbox will make a
- request for the full object and return the requsted value.
+ a ``Record`` made from a nested response) then pynetbox will make a
+ request for the full object and return the requested value.
:examples:
- Default representation of the object is usually its name
+ Default representation of the object is usually its name:
>>> x = nb.dcim.devices.get(1)
>>> x
test1-switch1
>>>
- Querying a string field.
+ Querying a string field:
>>> x = nb.dcim.devices.get(1)
>>> x.serial
'ABC123'
>>>
- Querying a field on a nested object.
+ Querying a field on a nested object:
>>> x = nb.dcim.devices.get(1)
>>> x.device_type.model
'QFX5100-24Q'
>>>
- Casting the object as a dictionary.
+ Casting the object as a dictionary:
>>> from pprint import pprint
>>> pprint(dict(x))
@@ -251,7 +251,7 @@
'virtual_chassis': None}
>>>
- Iterating over a Record object.
+ Iterating over a ``Record`` object:
>>> for i in x:
... print(i)
@@ -313,7 +313,12 @@
return dict(self)[k]
def __str__(self):
- return getattr(self, "name", None) or getattr(self, "label", None) or ""
+ return (
+ getattr(self, "name", None)
+ or getattr(self, "label", None)
+ or getattr(self, "display", None)
+ or ""
+ )
def __repr__(self):
return str(self)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/pynetbox/models/extras.py new/pynetbox-6.4.1/pynetbox/models/extras.py
--- old/pynetbox-6.3.0/pynetbox/models/extras.py 2021-12-04 23:55:21.000000000 +0100
+++ new/pynetbox-6.4.1/pynetbox/models/extras.py 2021-12-22 03:07:03.000000000 +0100
@@ -22,6 +22,8 @@
class ObjectChanges(Record):
object_data = JsonField
+ postchange_data = JsonField
+ prechange_data = JsonField
def __str__(self):
return self.request_id
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/pynetbox/models/ipam.py new/pynetbox-6.4.1/pynetbox/models/ipam.py
--- old/pynetbox-6.3.0/pynetbox/models/ipam.py 2021-12-04 23:55:21.000000000 +0100
+++ new/pynetbox-6.4.1/pynetbox/models/ipam.py 2021-12-22 03:07:03.000000000 +0100
@@ -39,21 +39,21 @@
>>> prefix = nb.ipam.prefixes.get(24)
>>> prefix.available_ips.list()
- [{u'vrf': None, u'family': 4, u'address': u'10.1.1.49/30'}...]
+ [10.0.0.1/24, 10.0.0.2/24, 10.0.0.3/24, 10.0.0.4/24, 10.0.0.5/24, ...]
To create a single IP:
>>> prefix = nb.ipam.prefixes.get(24)
>>> prefix.available_ips.create()
- {u'status': 1, u'description': u'', u'nat_inside': None...}
+ 10.0.0.1/24
To create multiple IPs:
>>> prefix = nb.ipam.prefixes.get(24)
>>> create = prefix.available_ips.create([{} for i in range(2)])
- >>> len(create)
- 2
+ >>> create
+ [10.0.0.2/24, 10.0.0.3/24]
"""
return DetailEndpoint(self, "available-ips", custom_return=IpAddresses)
@@ -72,18 +72,23 @@
:Examples:
+ >>> prefix = nb.ipam.prefixes.get(3)
+ >>> prefix
+ 10.0.0.0/16
>>> prefix.available_prefixes.list()
- [{u'prefix': u'10.1.1.44/30', u'vrf': None, u'family': 4}]
+ [10.0.1.0/24, 10.0.2.0/23, 10.0.4.0/22, 10.0.8.0/21, 10.0.16.0/20, 10.0.32.0/19, 10.0.64.0/18, 10.0.128.0/17]
Creating a single child prefix:
>>> prefix = nb.ipam.prefixes.get(1)
+ >>> prefix
+ 10.0.0.0/24
>>> new_prefix = prefix.available_prefixes.create(
- ... {'prefix_length': 29}
- ...)
- >>> new_prefix['prefix']
- u'10.1.1.56/29'
+ ... {"prefix_length": 29}
+ ... )
+ >>> new_prefix
+ 10.0.0.16/29
"""
return DetailEndpoint(self, "available-prefixes", custom_return=Prefixes)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/pynetbox/models/wireless.py new/pynetbox-6.4.1/pynetbox/models/wireless.py
--- old/pynetbox-6.3.0/pynetbox/models/wireless.py 1970-01-01 01:00:00.000000000 +0100
+++ new/pynetbox-6.4.1/pynetbox/models/wireless.py 2021-12-22 03:07:03.000000000 +0100
@@ -0,0 +1,21 @@
+"""
+(c) 2017 DigitalOcean
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+"""
+from pynetbox.core.response import Record
+
+
+class WirelessLans(Record):
+ def __str__(self):
+ return self.ssid
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/pynetbox.egg-info/PKG-INFO new/pynetbox-6.4.1/pynetbox.egg-info/PKG-INFO
--- old/pynetbox-6.3.0/pynetbox.egg-info/PKG-INFO 2021-12-04 23:55:32.000000000 +0100
+++ new/pynetbox-6.4.1/pynetbox.egg-info/PKG-INFO 2021-12-22 03:07:15.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: pynetbox
-Version: 6.3.0
+Version: 6.4.1
Summary: NetBox API client library
Home-page: https://github.com/digitalocean/pynetbox
Author: Zach Moody
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/pynetbox.egg-info/SOURCES.txt new/pynetbox-6.4.1/pynetbox.egg-info/SOURCES.txt
--- old/pynetbox-6.3.0/pynetbox.egg-info/SOURCES.txt 2021-12-04 23:55:32.000000000 +0100
+++ new/pynetbox-6.4.1/pynetbox.egg-info/SOURCES.txt 2021-12-22 03:07:15.000000000 +0100
@@ -36,6 +36,7 @@
pynetbox/models/ipam.py
pynetbox/models/users.py
pynetbox/models/virtualization.py
+pynetbox/models/wireless.py
tests/__init__.py
tests/conftest.py
tests/test_api.py
@@ -44,6 +45,7 @@
tests/test_tenancy.py
tests/test_users.py
tests/test_virtualization.py
+tests/test_wireless.py
tests/util.py
tests/fixtures/api/get_session_key.json
tests/fixtures/api/token_provision.json
@@ -144,6 +146,7 @@
tests/fixtures/users/groups.json
tests/fixtures/users/permission.json
tests/fixtures/users/permissions.json
+tests/fixtures/users/unknown_model.json
tests/fixtures/users/user.json
tests/fixtures/users/users.json
tests/fixtures/virtualization/cluster.json
@@ -156,6 +159,8 @@
tests/fixtures/virtualization/interfaces.json
tests/fixtures/virtualization/virtual_machine.json
tests/fixtures/virtualization/virtual_machines.json
+tests/fixtures/wireless/wireless_lan.json
+tests/fixtures/wireless/wireless_lans.json
tests/integration/conftest.py
tests/integration/test_dcim.py
tests/integration/test_ipam.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/tests/fixtures/users/unknown_model.json new/pynetbox-6.4.1/tests/fixtures/users/unknown_model.json
--- old/pynetbox-6.3.0/tests/fixtures/users/unknown_model.json 1970-01-01 01:00:00.000000000 +0100
+++ new/pynetbox-6.4.1/tests/fixtures/users/unknown_model.json 2021-12-22 03:07:03.000000000 +0100
@@ -0,0 +1,4 @@
+{
+ "id": 1,
+ "display": "Unknown object"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/tests/fixtures/wireless/wireless_lan.json new/pynetbox-6.4.1/tests/fixtures/wireless/wireless_lan.json
--- old/pynetbox-6.3.0/tests/fixtures/wireless/wireless_lan.json 1970-01-01 01:00:00.000000000 +0100
+++ new/pynetbox-6.4.1/tests/fixtures/wireless/wireless_lan.json 2021-12-22 03:07:03.000000000 +0100
@@ -0,0 +1,4 @@
+{
+ "id": 1,
+ "ssid": "SSID 1"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/tests/fixtures/wireless/wireless_lans.json new/pynetbox-6.4.1/tests/fixtures/wireless/wireless_lans.json
--- old/pynetbox-6.3.0/tests/fixtures/wireless/wireless_lans.json 1970-01-01 01:00:00.000000000 +0100
+++ new/pynetbox-6.4.1/tests/fixtures/wireless/wireless_lans.json 2021-12-22 03:07:03.000000000 +0100
@@ -0,0 +1,15 @@
+{
+ "count": 2,
+ "next": null,
+ "previous": null,
+ "results": [
+ {
+ "id": 1,
+ "ssid": "SSID 1"
+ },
+ {
+ "id": 2,
+ "ssid": "SSID 2"
+ }
+ ]
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/tests/test_users.py new/pynetbox-6.4.1/tests/test_users.py
--- old/pynetbox-6.3.0/tests/test_users.py 2021-12-04 23:55:21.000000000 +0100
+++ new/pynetbox-6.4.1/tests/test_users.py 2021-12-22 03:07:03.000000000 +0100
@@ -86,6 +86,7 @@
)
def test_repr(self, _):
test = nb.users.get(1)
+ self.assertEqual(type(test), pynetbox.models.users.Users)
self.assertEqual(str(test), "user1")
@@ -105,3 +106,19 @@
self.assertEqual(len(permission.users), 1)
user = permission.users[0]
self.assertEqual(str(user), "user1")
+
+
+class UnknownModelTestCase(unittest.TestCase):
+ """ This test validates that an unknown model is returned as Record object
+ and that the __str__() method correctly uses the 'display' field of the
+ object (introduced as a standard field in NetBox 2.11.0).
+ """
+
+ @patch(
+ "requests.sessions.Session.get",
+ return_value=Response(fixture="users/unknown_model.json"),
+ )
+ def test_unknown_model(self, _):
+ unknown_obj = nb.unknown_model.get(1)
+ self.assertEqual(type(unknown_obj), pynetbox.core.response.Record)
+ self.assertEqual(str(unknown_obj), "Unknown object")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/tests/test_wireless.py new/pynetbox-6.4.1/tests/test_wireless.py
--- old/pynetbox-6.3.0/tests/test_wireless.py 1970-01-01 01:00:00.000000000 +0100
+++ new/pynetbox-6.4.1/tests/test_wireless.py 2021-12-22 03:07:03.000000000 +0100
@@ -0,0 +1,90 @@
+import unittest
+import six
+
+import pynetbox
+from .util import Response
+
+if six.PY3:
+ from unittest.mock import patch
+else:
+ from mock import patch
+
+
+api = pynetbox.api("http://localhost:8000")
+
+nb_app = api.wireless
+
+HEADERS = {"accept": "application/json;"}
+
+
+class Generic(object):
+ class Tests(unittest.TestCase):
+ name = ""
+ ret = pynetbox.core.response.Record
+ app = "wireless"
+
+ def test_get_all(self):
+ with patch(
+ "requests.sessions.Session.get",
+ return_value=Response(fixture="{}/{}.json".format(self.app, self.name)),
+ ) as mock:
+ ret = list(getattr(nb_app, self.name).all())
+ self.assertTrue(ret)
+ self.assertTrue(isinstance(ret[0], self.ret))
+ mock.assert_called_with(
+ "http://localhost:8000/api/{}/{}/".format(
+ self.app, self.name.replace("_", "-")
+ ),
+ params={"limit": 0},
+ json=None,
+ headers=HEADERS,
+ )
+
+ def test_filter(self):
+ with patch(
+ "requests.sessions.Session.get",
+ return_value=Response(fixture="{}/{}.json".format(self.app, self.name)),
+ ) as mock:
+ ret = list(getattr(nb_app, self.name).filter(name="test"))
+ self.assertTrue(ret)
+ self.assertTrue(isinstance(ret[0], self.ret))
+ mock.assert_called_with(
+ "http://localhost:8000/api/{}/{}/".format(
+ self.app, self.name.replace("_", "-")
+ ),
+ params={"name": "test", "limit": 0},
+ json=None,
+ headers=HEADERS,
+ )
+
+ def test_get(self):
+ with patch(
+ "requests.sessions.Session.get",
+ return_value=Response(
+ fixture="{}/{}.json".format(self.app, self.name[:-1])
+ ),
+ ) as mock:
+ ret = getattr(nb_app, self.name).get(1)
+ self.assertTrue(ret)
+ self.assertTrue(isinstance(ret, self.ret))
+ mock.assert_called_with(
+ "http://localhost:8000/api/{}/{}/1/".format(
+ self.app, self.name.replace("_", "-")
+ ),
+ params={},
+ json=None,
+ headers=HEADERS,
+ )
+
+
+class WirelessLansTestCase(Generic.Tests):
+ name = "wireless_lans"
+
+ @patch(
+ "requests.sessions.Session.get",
+ return_value=Response(fixture="wireless/wireless_lan.json"),
+ )
+ def test_repr(self, _):
+ wireless_lan_obj = nb_app.wireless_lans.get(1)
+ self.assertEqual(type(wireless_lan_obj), pynetbox.models.wireless.WirelessLans)
+ self.assertEqual(str(wireless_lan_obj), "SSID 1")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pynetbox-6.3.0/tests/unit/test_query.py new/pynetbox-6.4.1/tests/unit/test_query.py
--- old/pynetbox-6.3.0/tests/unit/test_query.py 2021-12-04 23:55:21.000000000 +0100
+++ new/pynetbox-6.4.1/tests/unit/test_query.py 2021-12-22 03:07:03.000000000 +0100
@@ -5,9 +5,9 @@
from pynetbox.core.query import Request
if six.PY3:
- from unittest.mock import patch, Mock, call
+ from unittest.mock import Mock, call
else:
- from mock import patch, Mock, call
+ from mock import Mock, call
class RequestTestCase(unittest.TestCase):
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package lua-language-server for openSUSE:Factory checked in at 2021-12-29 21:10:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lua-language-server (Old)
and /work/SRC/openSUSE:Factory/.lua-language-server.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lua-language-server"
Wed Dec 29 21:10:55 2021 rev:5 rq:942982 version:2.5.6
Changes:
--------
--- /work/SRC/openSUSE:Factory/lua-language-server/lua-language-server.changes 2021-12-28 12:27:00.292501545 +0100
+++ /work/SRC/openSUSE:Factory/.lua-language-server.new.2520/lua-language-server.changes 2021-12-29 21:11:26.534309480 +0100
@@ -1,0 +2,6 @@
+Tue Dec 28 10:59:34 UTC 2021 - Matej Cepl <mcepl(a)suse.com>
+
+- With help of upstream, I finally found the released upstream
+ zip archive.
+
+-------------------------------------------------------------------
Old:
----
lua-language-server-2.5.6.obscpio
lua-language-server.obsinfo
New:
----
lua-language-server-2.5.6-submodules.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lua-language-server.spec ++++++
--- /var/tmp/diff_new_pack.6zd56u/_old 2021-12-29 21:11:27.286310099 +0100
+++ /var/tmp/diff_new_pack.6zd56u/_new 2021-12-29 21:11:27.290310101 +0100
@@ -26,18 +26,20 @@
License: MIT
URL: https://github.com/sumneko/lua-language-server
# Checkout from git is required because of gh#sumneko/lua-language-server#878
-Source0: %{name}-%{version}.tar.gz
+# Source0: %%{name}-%%{version}.tar.gz
+Source0: https://github.com/sumneko/%{pkg_name}/releases/download/%{version}/%{pkg_n…
Source1: lua-lsp-launcher.sh
Source2: README.suse-maint.md
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: ninja
+BuildRequires: unzip
%description
This package provides a Language Server Protocol (LSP) implementation for Lua.
%prep
-%autosetup -p1
+%autosetup -p1 -c
%build
export CFLAGS="%{optflags}"
++++++ _service ++++++
--- /var/tmp/diff_new_pack.6zd56u/_old 2021-12-29 21:11:27.330310134 +0100
+++ /var/tmp/diff_new_pack.6zd56u/_new 2021-12-29 21:11:27.334310138 +0100
@@ -6,8 +6,8 @@
<param name="revision">2.5.6</param>
<param name="version">2.5.6</param>
</service>
- <service name="tar" mode="buildtime" />
- <service name="recompress" mode="buildtime">
+ <service name="tar" mode="disabled" />
+ <service name="recompress" mode="disabled">
<param name="file">*.tar</param>
<param name="compression">gz</param>
</service>
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package bumpversion for openSUSE:Factory checked in at 2021-12-29 21:10:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bumpversion (Old)
and /work/SRC/openSUSE:Factory/.bumpversion.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bumpversion"
Wed Dec 29 21:10:55 2021 rev:2 rq:942976 version:0.6.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/bumpversion/bumpversion.changes 2017-09-04 12:34:18.244541356 +0200
+++ /work/SRC/openSUSE:Factory/.bumpversion.new.2520/bumpversion.changes 2021-12-29 21:11:25.682308780 +0100
@@ -1,0 +2,11 @@
+Tue Dec 21 17:35:09 UTC 2021 - Sebastian Wagner <sebix+novell.com(a)sebix.at>
+
+- require python-rpm-macros for building to fix build on Leap
+
+-------------------------------------------------------------------
+Sun May 17 20:00:21 UTC 2020 - Sebastian Wagner <sebix+novell.com(a)sebix.at>
+
+- update to version 0.6.0:
+ * Deprecation: publish package that links to the newer bump2version for seamless upgrades (see: https://www.python.org/dev/peps/pep-0423/#id106)
+
+-------------------------------------------------------------------
Old:
----
bumpversion-0.5.3.tar.gz
New:
----
bumpversion-0.6.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ bumpversion.spec ++++++
--- /var/tmp/diff_new_pack.XVOFYD/_old 2021-12-29 21:11:26.110309132 +0100
+++ /var/tmp/diff_new_pack.XVOFYD/_new 2021-12-29 21:11:26.114309135 +0100
@@ -1,7 +1,7 @@
#
# spec file for package bumpversion
#
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,20 +12,21 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: bumpversion
-Version: 0.5.3
+Version: 0.6.0
Release: 0
Summary: Version-bump your software with a single command
License: MIT
Group: Development/Tools/Version Control
-Url: https://github.com/peritus/bumpversion
+URL: https://github.com/peritus/bumpversion
Source: https://files.pythonhosted.org/packages/source/b/bumpversion/bumpversion-%{…
-BuildRequires: python3-devel
+BuildRequires: python-rpm-macros
BuildRequires: python3-setuptools
+Requires: python3-base
Provides: python-bumpversion = %version
Obsoletes: python-bumpversion < %version
BuildArch: noarch
@@ -47,7 +48,6 @@
%files
%doc README.rst
-%{_bindir}/bumpversion
%{python3_sitelib}/bumpversion*
%changelog
++++++ bumpversion-0.5.3.tar.gz -> bumpversion-0.6.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bumpversion-0.5.3/LICENSE.rst new/bumpversion-0.6.0/LICENSE.rst
--- old/bumpversion-0.5.3/LICENSE.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/bumpversion-0.6.0/LICENSE.rst 2020-05-14 04:02:16.000000000 +0200
@@ -0,0 +1,20 @@
+Copyright (C) 2013-2014 Filip Noetzel
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bumpversion-0.5.3/MANIFEST.in new/bumpversion-0.6.0/MANIFEST.in
--- old/bumpversion-0.5.3/MANIFEST.in 2013-03-16 08:12:47.000000000 +0100
+++ new/bumpversion-0.6.0/MANIFEST.in 2020-05-14 04:17:55.000000000 +0200
@@ -1 +1,2 @@
-include README.rst
+include README.rst LICENSE.rst
+#recursive-include tests *.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bumpversion-0.5.3/PKG-INFO new/bumpversion-0.6.0/PKG-INFO
--- old/bumpversion-0.5.3/PKG-INFO 2015-04-15 11:14:23.000000000 +0200
+++ new/bumpversion-0.6.0/PKG-INFO 2020-05-14 04:18:10.000000000 +0200
@@ -1,12 +1,19 @@
Metadata-Version: 1.1
Name: bumpversion
-Version: 0.5.3
+Version: 0.6.0
Summary: Version-bump your software with a single command!
Home-page: https://github.com/peritus/bumpversion
Author: Filip Noetzel
Author-email: filip+bumpversion(a)j03.de
License: MIT
-Description: ===========
+Description: **������ Current status of this project**
+
+ * ����If you want to start **using bumpversion**, you're best advised to **install one of the maintained forks**, e.g. ��� `@c4urself's bump2version <https://github.com/c4urself/bump2version/#installation>`_.
+ * ����If you want to **help maintain** bumpversion, there's an `ongoing discussion about merging the fork back to the original project as well as forming a group of maintainers <https://github.com/c4urself/bump2version/issues/86>`_ to ensure a long-term future for this project. Please contribute.
+
+ -----
+
+ ===========
bumpversion
===========
@@ -131,7 +138,7 @@
Also available on the command line as ``(--tag | --no-tag)``.
``tag_name =``
- **default:** "``v{new_version}``"
+ **default:** ``v{new_version}``
The name of the tag that will be created. Only valid when using ``--tag`` / ``tag = True``.
@@ -153,7 +160,7 @@
Also available as ``(--commit | --no-commit)``.
``message =``
- **default:** "``Bump version: {current_version} ��� {new_version}``"
+ **default:** ``Bump version: {current_version} ��� {new_version}``
The commit message to use when creating a commit. Only valid when using ``--commit`` / ``commit = True``.
@@ -242,7 +249,7 @@
``[bumpversion:file:���]``
``parse =``
- **default:** "``(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)``"
+ **default:** ``(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)``
Regular expression (using `Python regular expression syntax
<http://docs.python.org/2/library/re.html#regular-expression-syntax>`_) on
@@ -254,7 +261,7 @@
Also available as ``--parse``
``serialize =``
- **default:** "``{major}.{minor}.{patch}``"
+ **default:** ``{major}.{minor}.{patch}``
Template specifying how to serialize the version parts back to a version
string.
@@ -280,7 +287,7 @@
given like ``--serialize {major}.{minor} --serialize {major}``
``search =``
- **default:** "``{current_version}``"
+ **default:** ``{current_version}``
Template string how to search for the string to be replaced in the file.
Useful if the remotest possibility exists that the current version number
@@ -289,7 +296,7 @@
<http://docs.python.org/2/library/string.html#format-string-syntax>`_.
``replace =``
- **default:** "``{new_version}``"
+ **default:** ``{new_version}``
Template to create the string that will replace the current version number in
the file.
@@ -341,6 +348,27 @@
``-h, --help``
Print help and exit
+ Using bumpversion in a script
+ =============================
+
+ If you need to use the version generated by bumpversion in a script you can make use of
+ the `--list` option, combined with `grep` and `sed`.
+
+ Say for example that you are using git-flow to manage your project and want to automatically
+ create a release. When you issue `git flow release start` you already need to know the
+ new version, before applying the change.
+
+ The standard way to get it in a bash script is
+
+ bumpversion --dry-run --list <part> | grep <field name> | sed -r s,"^.*=",,
+
+ where <part> is as usual the part of the version number you are updating. You need to specify
+ `--dry-run` to avoid bumpversion actually bumping the version number.
+
+ For example, if you are updating the minor number and looking for the new version number this becomes
+
+ bumpversion --dry-run --list minor | grep new_version | sed -r s,"^.*=",,
+
Development
===========
@@ -370,7 +398,10 @@
Changes
=======
- **unreleased**
+ **0.6.0**
+
+ - Deprecation: publish package that links to the newer bump2version for seamless
+ upgrades (see: https://www.python.org/dev/peps/pep-0423/#id106)
**v0.5.3**
@@ -506,7 +537,7 @@
Platform: UNKNOWN
-Classifier: Development Status :: 4 - Beta
+Classifier: Development Status :: 7 - Inactive
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bumpversion-0.5.3/README.rst new/bumpversion-0.6.0/README.rst
--- old/bumpversion-0.5.3/README.rst 2015-04-15 11:13:47.000000000 +0200
+++ new/bumpversion-0.6.0/README.rst 2020-05-14 04:17:55.000000000 +0200
@@ -1,3 +1,10 @@
+**������ Current status of this project**
+
+* ����If you want to start **using bumpversion**, you're best advised to **install one of the maintained forks**, e.g. ��� `@c4urself's bump2version <https://github.com/c4urself/bump2version/#installation>`_.
+* ����If you want to **help maintain** bumpversion, there's an `ongoing discussion about merging the fork back to the original project as well as forming a group of maintainers <https://github.com/c4urself/bump2version/issues/86>`_ to ensure a long-term future for this project. Please contribute.
+
+-----
+
===========
bumpversion
===========
@@ -123,7 +130,7 @@
Also available on the command line as ``(--tag | --no-tag)``.
``tag_name =``
- **default:** "``v{new_version}``"
+ **default:** ``v{new_version}``
The name of the tag that will be created. Only valid when using ``--tag`` / ``tag = True``.
@@ -145,7 +152,7 @@
Also available as ``(--commit | --no-commit)``.
``message =``
- **default:** "``Bump version: {current_version} ��� {new_version}``"
+ **default:** ``Bump version: {current_version} ��� {new_version}``
The commit message to use when creating a commit. Only valid when using ``--commit`` / ``commit = True``.
@@ -234,7 +241,7 @@
``[bumpversion:file:���]``
``parse =``
- **default:** "``(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)``"
+ **default:** ``(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)``
Regular expression (using `Python regular expression syntax
<http://docs.python.org/2/library/re.html#regular-expression-syntax>`_) on
@@ -246,7 +253,7 @@
Also available as ``--parse``
``serialize =``
- **default:** "``{major}.{minor}.{patch}``"
+ **default:** ``{major}.{minor}.{patch}``
Template specifying how to serialize the version parts back to a version
string.
@@ -272,7 +279,7 @@
given like ``--serialize {major}.{minor} --serialize {major}``
``search =``
- **default:** "``{current_version}``"
+ **default:** ``{current_version}``
Template string how to search for the string to be replaced in the file.
Useful if the remotest possibility exists that the current version number
@@ -281,7 +288,7 @@
<http://docs.python.org/2/library/string.html#format-string-syntax>`_.
``replace =``
- **default:** "``{new_version}``"
+ **default:** ``{new_version}``
Template to create the string that will replace the current version number in
the file.
@@ -333,6 +340,27 @@
``-h, --help``
Print help and exit
+Using bumpversion in a script
+=============================
+
+If you need to use the version generated by bumpversion in a script you can make use of
+the `--list` option, combined with `grep` and `sed`.
+
+Say for example that you are using git-flow to manage your project and want to automatically
+create a release. When you issue `git flow release start` you already need to know the
+new version, before applying the change.
+
+The standard way to get it in a bash script is
+
+ bumpversion --dry-run --list <part> | grep <field name> | sed -r s,"^.*=",,
+
+where <part> is as usual the part of the version number you are updating. You need to specify
+`--dry-run` to avoid bumpversion actually bumping the version number.
+
+For example, if you are updating the minor number and looking for the new version number this becomes
+
+ bumpversion --dry-run --list minor | grep new_version | sed -r s,"^.*=",,
+
Development
===========
@@ -362,7 +390,10 @@
Changes
=======
-**unreleased**
+**0.6.0**
+
+- Deprecation: publish package that links to the newer bump2version for seamless
+ upgrades (see: https://www.python.org/dev/peps/pep-0423/#id106)
**v0.5.3**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bumpversion-0.5.3/bumpversion/__init__.py new/bumpversion-0.6.0/bumpversion/__init__.py
--- old/bumpversion-0.5.3/bumpversion/__init__.py 2015-04-15 11:12:43.000000000 +0200
+++ new/bumpversion-0.6.0/bumpversion/__init__.py 1970-01-01 01:00:00.000000000 +0100
@@ -1,1005 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from __future__ import unicode_literals
-
-try:
- from configparser import RawConfigParser, NoOptionError
-except ImportError:
- from ConfigParser import RawConfigParser, NoOptionError
-
-try:
- from StringIO import StringIO
-except:
- from io import StringIO
-
-
-import argparse
-import os
-import re
-import sre_constants
-import subprocess
-import warnings
-import io
-from string import Formatter
-from datetime import datetime
-from difflib import unified_diff
-from tempfile import NamedTemporaryFile
-
-import sys
-import codecs
-
-if sys.version_info[0] == 2:
- sys.stdout = codecs.getwriter('utf-8')(sys.stdout)
-
-__VERSION__ = '0.5.3'
-
-DESCRIPTION = 'bumpversion: v{} (using Python v{})'.format(
- __VERSION__,
- sys.version.split("\n")[0].split(" ")[0],
-)
-
-import logging
-logger = logging.getLogger("bumpversion.logger")
-logger_list = logging.getLogger("bumpversion.list")
-
-from argparse import _AppendAction
-class DiscardDefaultIfSpecifiedAppendAction(_AppendAction):
-
- '''
- Fixes bug http://bugs.python.org/issue16399 for 'append' action
- '''
-
- def __call__(self, parser, namespace, values, option_string=None):
- if getattr(self, "_discarded_default", None) is None:
- setattr(namespace, self.dest, [])
- self._discarded_default = True
-
- super(DiscardDefaultIfSpecifiedAppendAction, self).__call__(
- parser, namespace, values, option_string=None)
-
-time_context = {
- 'now': datetime.now(),
- 'utcnow': datetime.utcnow(),
-}
-
-class BaseVCS(object):
-
- @classmethod
- def commit(cls, message):
- f = NamedTemporaryFile('wb', delete=False)
- f.write(message.encode('utf-8'))
- f.close()
- subprocess.check_output(cls._COMMIT_COMMAND + [f.name], env=dict(
- list(os.environ.items()) + [(b'HGENCODING', b'utf-8')]
- ))
- os.unlink(f.name)
-
- @classmethod
- def is_usable(cls):
- try:
- return subprocess.call(
- cls._TEST_USABLE_COMMAND,
- stderr=subprocess.PIPE,
- stdout=subprocess.PIPE
- ) == 0
- except OSError as e:
- if e.errno == 2:
- # mercurial is not installed then, ok.
- return False
- raise
-
-
-class Git(BaseVCS):
-
- _TEST_USABLE_COMMAND = ["git", "rev-parse", "--git-dir"]
- _COMMIT_COMMAND = ["git", "commit", "-F"]
-
- @classmethod
- def assert_nondirty(cls):
- lines = [
- line.strip() for line in
- subprocess.check_output(
- ["git", "status", "--porcelain"]).splitlines()
- if not line.strip().startswith(b"??")
- ]
-
- if lines:
- raise WorkingDirectoryIsDirtyException(
- "Git working directory is not clean:\n{}".format(
- b"\n".join(lines)))
-
- @classmethod
- def latest_tag_info(cls):
- try:
- # git-describe doesn't update the git-index, so we do that
- subprocess.check_output(["git", "update-index", "--refresh"])
-
- # get info about the latest tag in git
- describe_out = subprocess.check_output([
- "git",
- "describe",
- "--dirty",
- "--tags",
- "--long",
- "--abbrev=40",
- "--match=v*",
- ], stderr=subprocess.STDOUT
- ).decode().split("-")
- except subprocess.CalledProcessError:
- # logger.warn("Error when running git describe")
- return {}
-
- info = {}
-
- if describe_out[-1].strip() == "dirty":
- info["dirty"] = True
- describe_out.pop()
-
- info["commit_sha"] = describe_out.pop().lstrip("g")
- info["distance_to_latest_tag"] = int(describe_out.pop())
- info["current_version"] = "-".join(describe_out).lstrip("v")
-
- return info
-
- @classmethod
- def add_path(cls, path):
- subprocess.check_output(["git", "add", "--update", path])
-
- @classmethod
- def tag(cls, name):
- subprocess.check_output(["git", "tag", name])
-
-
-class Mercurial(BaseVCS):
-
- _TEST_USABLE_COMMAND = ["hg", "root"]
- _COMMIT_COMMAND = ["hg", "commit", "--logfile"]
-
- @classmethod
- def latest_tag_info(cls):
- return {}
-
- @classmethod
- def assert_nondirty(cls):
- lines = [
- line.strip() for line in
- subprocess.check_output(
- ["hg", "status", "-mard"]).splitlines()
- if not line.strip().startswith(b"??")
- ]
-
- if lines:
- raise WorkingDirectoryIsDirtyException(
- "Mercurial working directory is not clean:\n{}".format(
- b"\n".join(lines)))
-
- @classmethod
- def add_path(cls, path):
- pass
-
- @classmethod
- def tag(cls, name):
- subprocess.check_output(["hg", "tag", name])
-
-VCS = [Git, Mercurial]
-
-
-def prefixed_environ():
- return dict((("${}".format(key), value) for key, value in os.environ.items()))
-
-class ConfiguredFile(object):
-
- def __init__(self, path, versionconfig):
- self.path = path
- self._versionconfig = versionconfig
-
- def should_contain_version(self, version, context):
-
- context['current_version'] = self._versionconfig.serialize(version, context)
-
- serialized_version = self._versionconfig.search.format(**context)
-
- if self.contains(serialized_version):
- return
-
- msg = "Did not find '{}' or '{}' in file {}".format(version.original, serialized_version, self.path)
-
- if version.original:
- assert self.contains(version.original), msg
- return
-
- assert False, msg
-
- def contains(self, search):
- with io.open(self.path, 'rb') as f:
- search_lines = search.splitlines()
- lookbehind = []
-
- for lineno, line in enumerate(f.readlines()):
- lookbehind.append(line.decode('utf-8').rstrip("\n"))
-
- if len(lookbehind) > len(search_lines):
- lookbehind = lookbehind[1:]
-
- if (search_lines[0] in lookbehind[0] and
- search_lines[-1] in lookbehind[-1] and
- search_lines[1:-1] == lookbehind[1:-1]):
- logger.info("Found '{}' in {} at line {}: {}".format(
- search, self.path, lineno - (len(lookbehind) - 1), line.decode('utf-8').rstrip()))
- return True
- return False
-
- def replace(self, current_version, new_version, context, dry_run):
-
- with io.open(self.path, 'rb') as f:
- file_content_before = f.read().decode('utf-8')
-
- context['current_version'] = self._versionconfig.serialize(current_version, context)
- context['new_version'] = self._versionconfig.serialize(new_version, context)
-
- search_for = self._versionconfig.search.format(**context)
- replace_with = self._versionconfig.replace.format(**context)
-
- file_content_after = file_content_before.replace(
- search_for, replace_with
- )
-
- if file_content_before == file_content_after:
- # TODO expose this to be configurable
- file_content_after = file_content_before.replace(
- current_version.original,
- replace_with,
- )
-
- if file_content_before != file_content_after:
- logger.info("{} file {}:".format(
- "Would change" if dry_run else "Changing",
- self.path,
- ))
- logger.info("\n".join(list(unified_diff(
- file_content_before.splitlines(),
- file_content_after.splitlines(),
- lineterm="",
- fromfile="a/"+self.path,
- tofile="b/"+self.path
- ))))
- else:
- logger.info("{} file {}".format(
- "Would not change" if dry_run else "Not changing",
- self.path,
- ))
-
- if not dry_run:
- with io.open(self.path, 'wb') as f:
- f.write(file_content_after.encode('utf-8'))
-
- def __str__(self):
- return self.path
-
- def __repr__(self):
- return '<bumpversion.ConfiguredFile:{}>'.format(self.path)
-
-class VersionPartConfiguration(object):
- pass
-
-class ConfiguredVersionPartConfiguration(object):
-
- def __init__(self, values, optional_value=None, first_value=None):
-
- assert len(values) > 0
-
- self._values = values
-
- if optional_value is None:
- optional_value = values[0]
-
- assert optional_value in values
-
- self.optional_value = optional_value
-
- if first_value is None:
- first_value = values[0]
-
- assert first_value in values
-
- self.first_value = first_value
-
- def bump(self, value):
- return self._values[self._values.index(value)+1]
-
-class NumericVersionPartConfiguration(VersionPartConfiguration):
-
- optional_value = "0"
-
- FIRST_NUMERIC = re.compile('([^\d]*)(\d+)(.*)')
-
- def __init__(self, first_value=None):
-
- if first_value is None:
- first_value = "0"
-
- int(first_value) # make sure that it's numeric
-
- self.first_value = first_value
-
- @classmethod
- def bump(cls, value):
- part_prefix, numeric_version, part_suffix = cls.FIRST_NUMERIC.search(value).groups()
- bumped_numeric = str(int(numeric_version) + 1)
- return "".join([part_prefix, bumped_numeric, part_suffix])
-
-class VersionPart(object):
-
- def __init__(self, value, config=None):
- self._value = value
-
- if config is None:
- config = NumericVersionPartConfiguration()
-
- self.config = config
-
- @property
- def value(self):
- return self._value or self.config.optional_value
-
- def copy(self):
- return VersionPart(self._value)
-
- def bump(self):
- return VersionPart(self.config.bump(self.value), self.config)
-
- def is_optional(self):
- return self.value == self.config.optional_value
-
- def __format__(self, format_spec):
- return self.value
-
- def __repr__(self):
- return '<bumpversion.VersionPart:{}:{}>'.format(
- self.config.__class__.__name__,
- self.value
- )
-
- def null(self):
- return VersionPart(self.config.first_value, self.config)
-
-class IncompleteVersionRepresenationException(Exception):
- def __init__(self, message):
- self.message = message
-
-class MissingValueForSerializationException(Exception):
- def __init__(self, message):
- self.message = message
-
-class WorkingDirectoryIsDirtyException(Exception):
- def __init__(self, message):
- self.message = message
-
-def keyvaluestring(d):
- return ", ".join("{}={}".format(k, v) for k, v in sorted(d.items()))
-
-class Version(object):
-
- def __init__(self, values, original=None):
- self._values = dict(values)
- self.original = original
-
- def __getitem__(self, key):
- return self._values[key]
-
- def __len__(self):
- return len(self._values)
-
- def __iter__(self):
- return iter(self._values)
-
- def __repr__(self):
- return '<bumpversion.Version:{}>'.format(keyvaluestring(self._values))
-
- def bump(self, part_name, order):
- bumped = False
-
- new_values = {}
-
- for label in order:
- if not label in self._values:
- continue
- elif label == part_name:
- new_values[label] = self._values[label].bump()
- bumped = True
- elif bumped:
- new_values[label] = self._values[label].null()
- else:
- new_values[label] = self._values[label].copy()
-
- new_version = Version(new_values)
-
- return new_version
-
-class VersionConfig(object):
-
- """
- Holds a complete representation of a version string
- """
-
- def __init__(self, parse, serialize, search, replace, part_configs=None):
-
- try:
- self.parse_regex = re.compile(parse, re.VERBOSE)
- except sre_constants.error as e:
- logger.error("--parse '{}' is not a valid regex".format(parse))
- raise e
-
- self.serialize_formats = serialize
-
- if not part_configs:
- part_configs = {}
-
- self.part_configs = part_configs
- self.search = search
- self.replace = replace
-
- def _labels_for_format(self, serialize_format):
- return (
- label
- for _, label, _, _ in Formatter().parse(serialize_format)
- if label
- )
-
- def order(self):
- # currently, order depends on the first given serialization format
- # this seems like a good idea because this should be the most complete format
- return self._labels_for_format(self.serialize_formats[0])
-
- def parse(self, version_string):
-
- regexp_one_line = "".join([l.split("#")[0].strip() for l in self.parse_regex.pattern.splitlines()])
-
- logger.info("Parsing version '{}' using regexp '{}'".format(version_string, regexp_one_line))
-
- match = self.parse_regex.search(version_string)
-
- _parsed = {}
- if not match:
- logger.warn("Evaluating 'parse' option: '{}' does not parse current version '{}'".format(
- self.parse_regex.pattern, version_string))
- return
-
- for key, value in match.groupdict().items():
- _parsed[key] = VersionPart(value, self.part_configs.get(key))
-
-
- v = Version(_parsed, version_string)
-
- logger.info("Parsed the following values: %s" % keyvaluestring(v._values))
-
- return v
-
- def _serialize(self, version, serialize_format, context, raise_if_incomplete=False):
- """
- Attempts to serialize a version with the given serialization format.
-
- Raises MissingValueForSerializationException if not serializable
- """
- values = context.copy()
- for k in version:
- values[k] = version[k]
-
- # TODO dump complete context on debug level
-
- try:
- # test whether all parts required in the format have values
- serialized = serialize_format.format(**values)
-
- except KeyError as e:
- missing_key = getattr(e,
- 'message', # Python 2
- e.args[0] # Python 3
- )
- raise MissingValueForSerializationException(
- "Did not find key {} in {} when serializing version number".format(
- repr(missing_key), repr(version)))
-
- keys_needing_representation = set()
- found_required = False
-
- for k in self.order():
- v = values[k]
-
- if not isinstance(v, VersionPart):
- # values coming from environment variables don't need
- # representation
- continue
-
- if not v.is_optional():
- found_required = True
- keys_needing_representation.add(k)
- elif not found_required:
- keys_needing_representation.add(k)
-
- required_by_format = set(self._labels_for_format(serialize_format))
-
- # try whether all parsed keys are represented
- if raise_if_incomplete:
- if not (keys_needing_representation <= required_by_format):
- raise IncompleteVersionRepresenationException(
- "Could not represent '{}' in format '{}'".format(
- "', '".join(keys_needing_representation ^ required_by_format),
- serialize_format,
- ))
-
- return serialized
-
-
- def _choose_serialize_format(self, version, context):
-
- chosen = None
-
- # logger.info("Available serialization formats: '{}'".format("', '".join(self.serialize_formats)))
-
- for serialize_format in self.serialize_formats:
- try:
- self._serialize(version, serialize_format, context, raise_if_incomplete=True)
- chosen = serialize_format
- # logger.info("Found '{}' to be a usable serialization format".format(chosen))
- except IncompleteVersionRepresenationException as e:
- # logger.info(e.message)
- if not chosen:
- chosen = serialize_format
- except MissingValueForSerializationException as e:
- logger.info(e.message)
- raise e
-
- if not chosen:
- raise KeyError("Did not find suitable serialization format")
-
- # logger.info("Selected serialization format '{}'".format(chosen))
-
- return chosen
-
- def serialize(self, version, context):
- serialized = self._serialize(version, self._choose_serialize_format(version, context), context)
- # logger.info("Serialized to '{}'".format(serialized))
- return serialized
-
-OPTIONAL_ARGUMENTS_THAT_TAKE_VALUES = [
- '--config-file',
- '--current-version',
- '--message',
- '--new-version',
- '--parse',
- '--serialize',
- '--search',
- '--replace',
- '--tag-name',
-]
-
-
-def split_args_in_optional_and_positional(args):
- # manually parsing positional arguments because stupid argparse can't mix
- # positional and optional arguments
-
- positions = []
- for i, arg in enumerate(args):
-
- previous = None
-
- if i > 0:
- previous = args[i-1]
-
- if ((not arg.startswith('--')) and
- (previous not in OPTIONAL_ARGUMENTS_THAT_TAKE_VALUES)):
- positions.append(i)
-
- positionals = [arg for i, arg in enumerate(args) if i in positions]
- args = [arg for i, arg in enumerate(args) if i not in positions]
-
- return (positionals, args)
-
-def main(original_args=None):
-
- positionals, args = split_args_in_optional_and_positional(
- sys.argv[1:] if original_args is None else original_args
- )
-
- if len(positionals[1:]) > 2:
- warnings.warn("Giving multiple files on the command line will be deprecated, please use [bumpversion:file:...] in a config file.", PendingDeprecationWarning)
-
- parser1 = argparse.ArgumentParser(add_help=False)
-
- parser1.add_argument(
- '--config-file', metavar='FILE',
- default=argparse.SUPPRESS, required=False,
- help='Config file to read most of the variables from (default: .bumpversion.cfg)')
-
- parser1.add_argument(
- '--verbose', action='count', default=0,
- help='Print verbose logging to stderr', required=False)
-
- parser1.add_argument(
- '--list', action='store_true', default=False,
- help='List machine readable information', required=False)
-
- parser1.add_argument(
- '--allow-dirty', action='store_true', default=False,
- help="Don't abort if working directory is dirty", required=False)
-
- known_args, remaining_argv = parser1.parse_known_args(args)
-
- logformatter = logging.Formatter('%(message)s')
-
- if len(logger.handlers) == 0:
- ch = logging.StreamHandler(sys.stderr)
- ch.setFormatter(logformatter)
- logger.addHandler(ch)
-
- if len(logger_list.handlers) == 0:
- ch2 = logging.StreamHandler(sys.stdout)
- ch2.setFormatter(logformatter)
- logger_list.addHandler(ch2)
-
- if known_args.list:
- logger_list.setLevel(1)
-
- log_level = {
- 0: logging.WARNING,
- 1: logging.INFO,
- 2: logging.DEBUG,
- }.get(known_args.verbose, logging.DEBUG)
-
- logger.setLevel(log_level)
-
- logger.debug("Starting {}".format(DESCRIPTION))
-
- defaults = {}
- vcs_info = {}
-
- for vcs in VCS:
- if vcs.is_usable():
- vcs_info.update(vcs.latest_tag_info())
-
- if 'current_version' in vcs_info:
- defaults['current_version'] = vcs_info['current_version']
-
- config = RawConfigParser('')
-
- # don't transform keys to lowercase (which would be the default)
- config.optionxform = lambda option: option
-
- config.add_section('bumpversion')
-
- explicit_config = hasattr(known_args, 'config_file')
-
- if explicit_config:
- config_file = known_args.config_file
- elif not os.path.exists('.bumpversion.cfg') and \
- os.path.exists('setup.cfg'):
- config_file = 'setup.cfg'
- else:
- config_file = '.bumpversion.cfg'
-
- config_file_exists = os.path.exists(config_file)
-
- part_configs = {}
-
- files = []
-
- if config_file_exists:
-
- logger.info("Reading config file {}:".format(config_file))
- logger.info(io.open(config_file, 'rt', encoding='utf-8').read())
-
- config.readfp(io.open(config_file, 'rt', encoding='utf-8'))
-
- log_config = StringIO()
- config.write(log_config)
-
- if 'files' in dict(config.items("bumpversion")):
- warnings.warn(
- "'files =' configuration is will be deprecated, please use [bumpversion:file:...]",
- PendingDeprecationWarning
- )
-
- defaults.update(dict(config.items("bumpversion")))
-
- for listvaluename in ("serialize",):
- try:
- value = config.get("bumpversion", listvaluename)
- defaults[listvaluename] = list(filter(None, (x.strip() for x in value.splitlines())))
- except NoOptionError:
- pass # no default value then ;)
-
- for boolvaluename in ("commit", "tag", "dry_run"):
- try:
- defaults[boolvaluename] = config.getboolean(
- "bumpversion", boolvaluename)
- except NoOptionError:
- pass # no default value then ;)
-
- for section_name in config.sections():
-
- section_name_match = re.compile("^bumpversion:(file|part):(.+)").match(section_name)
-
- if not section_name_match:
- continue
-
- section_prefix, section_value = section_name_match.groups()
-
- section_config = dict(config.items(section_name))
-
- if section_prefix == "part":
-
- ThisVersionPartConfiguration = NumericVersionPartConfiguration
-
- if 'values' in section_config:
- section_config['values'] = list(filter(None, (x.strip() for x in section_config['values'].splitlines())))
- ThisVersionPartConfiguration = ConfiguredVersionPartConfiguration
-
- part_configs[section_value] = ThisVersionPartConfiguration(**section_config)
-
- elif section_prefix == "file":
-
- filename = section_value
-
- if 'serialize' in section_config:
- section_config['serialize'] = list(filter(None, (x.strip() for x in section_config['serialize'].splitlines())))
-
- section_config['part_configs'] = part_configs
-
- if not 'parse' in section_config:
- section_config['parse'] = defaults.get("parse", '(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)')
-
- if not 'serialize' in section_config:
- section_config['serialize'] = defaults.get('serialize', [str('{major}.{minor}.{patch}')])
-
- if not 'search' in section_config:
- section_config['search'] = defaults.get("search", '{current_version}')
-
- if not 'replace' in section_config:
- section_config['replace'] = defaults.get("replace", '{new_version}')
-
- files.append(ConfiguredFile(filename, VersionConfig(**section_config)))
-
- else:
- message = "Could not read config file at {}".format(config_file)
- if explicit_config:
- raise argparse.ArgumentTypeError(message)
- else:
- logger.info(message)
-
- parser2 = argparse.ArgumentParser(prog='bumpversion', add_help=False, parents=[parser1])
- parser2.set_defaults(**defaults)
-
- parser2.add_argument('--current-version', metavar='VERSION',
- help='Version that needs to be updated', required=False)
- parser2.add_argument('--parse', metavar='REGEX',
- help='Regex parsing the version string',
- default=defaults.get("parse", '(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)'))
- parser2.add_argument('--serialize', metavar='FORMAT',
- action=DiscardDefaultIfSpecifiedAppendAction,
- help='How to format what is parsed back to a version',
- default=defaults.get("serialize", [str('{major}.{minor}.{patch}')]))
- parser2.add_argument('--search', metavar='SEARCH',
- help='Template for complete string to search',
- default=defaults.get("search", '{current_version}'))
- parser2.add_argument('--replace', metavar='REPLACE',
- help='Template for complete string to replace',
- default=defaults.get("replace", '{new_version}'))
-
- known_args, remaining_argv = parser2.parse_known_args(args)
-
- defaults.update(vars(known_args))
-
- assert type(known_args.serialize) == list
-
- context = dict(list(time_context.items()) + list(prefixed_environ().items()) + list(vcs_info.items()))
-
- try:
- vc = VersionConfig(
- parse=known_args.parse,
- serialize=known_args.serialize,
- search=known_args.search,
- replace=known_args.replace,
- part_configs=part_configs,
- )
- except sre_constants.error as e:
- sys.exit(1)
-
- current_version = vc.parse(known_args.current_version) if known_args.current_version else None
-
- new_version = None
-
- if not 'new_version' in defaults and known_args.current_version:
- try:
- if current_version and len(positionals) > 0:
- logger.info("Attempting to increment part '{}'".format(positionals[0]))
- new_version = current_version.bump(positionals[0], vc.order())
- logger.info("Values are now: " + keyvaluestring(new_version._values))
- defaults['new_version'] = vc.serialize(new_version, context)
- except MissingValueForSerializationException as e:
- logger.info("Opportunistic finding of new_version failed: " + e.message)
- except IncompleteVersionRepresenationException as e:
- logger.info("Opportunistic finding of new_version failed: " + e.message)
- except KeyError as e:
- logger.info("Opportunistic finding of new_version failed")
-
- parser3 = argparse.ArgumentParser(
- prog='bumpversion',
- description=DESCRIPTION,
- formatter_class=argparse.ArgumentDefaultsHelpFormatter,
- conflict_handler='resolve',
- parents=[parser2],
- )
-
- parser3.set_defaults(**defaults)
-
- parser3.add_argument('--current-version', metavar='VERSION',
- help='Version that needs to be updated',
- required=not 'current_version' in defaults)
- parser3.add_argument('--dry-run', '-n', action='store_true',
- default=False, help="Don't write any files, just pretend.")
- parser3.add_argument('--new-version', metavar='VERSION',
- help='New version that should be in the files',
- required=not 'new_version' in defaults)
-
- commitgroup = parser3.add_mutually_exclusive_group()
-
- commitgroup.add_argument('--commit', action='store_true', dest="commit",
- help='Commit to version control', default=defaults.get("commit", False))
- commitgroup.add_argument('--no-commit', action='store_false', dest="commit",
- help='Do not commit to version control', default=argparse.SUPPRESS)
-
- taggroup = parser3.add_mutually_exclusive_group()
-
- taggroup.add_argument('--tag', action='store_true', dest="tag", default=defaults.get("tag", False),
- help='Create a tag in version control')
- taggroup.add_argument('--no-tag', action='store_false', dest="tag",
- help='Do not create a tag in version control', default=argparse.SUPPRESS)
-
- parser3.add_argument('--tag-name', metavar='TAG_NAME',
- help='Tag name (only works with --tag)',
- default=defaults.get('tag_name', 'v{new_version}'))
-
- parser3.add_argument('--message', '-m', metavar='COMMIT_MSG',
- help='Commit message',
- default=defaults.get('message', 'Bump version: {current_version} ��� {new_version}'))
-
-
- file_names = []
- if 'files' in defaults:
- assert defaults['files'] != None
- file_names = defaults['files'].split(' ')
-
- parser3.add_argument('part',
- help='Part of the version to be bumped.')
- parser3.add_argument('files', metavar='file',
- nargs='*',
- help='Files to change', default=file_names)
-
- args = parser3.parse_args(remaining_argv + positionals)
-
- if args.dry_run:
- logger.info("Dry run active, won't touch any files.")
-
- if args.new_version:
- new_version = vc.parse(args.new_version)
-
- logger.info("New version will be '{}'".format(args.new_version))
-
- file_names = file_names or positionals[1:]
-
- for file_name in file_names:
- files.append(ConfiguredFile(file_name, vc))
-
- for vcs in VCS:
- if vcs.is_usable():
- try:
- vcs.assert_nondirty()
- except WorkingDirectoryIsDirtyException as e:
- if not defaults['allow_dirty']:
- logger.warn(
- "{}\n\nUse --allow-dirty to override this if you know what you're doing.".format(e.message))
- raise
- break
- else:
- vcs = None
-
- # make sure files exist and contain version string
-
- logger.info("Asserting files {} contain the version string:".format(", ".join([str(f) for f in files])))
-
- for f in files:
- f.should_contain_version(current_version, context)
-
- # change version string in files
- for f in files:
- f.replace(current_version, new_version, context, args.dry_run)
-
- commit_files = [f.path for f in files]
-
- config.set('bumpversion', 'new_version', args.new_version)
-
- for key, value in config.items('bumpversion'):
- logger_list.info("{}={}".format(key, value))
-
- config.remove_option('bumpversion', 'new_version')
-
- config.set('bumpversion', 'current_version', args.new_version)
-
- new_config = StringIO()
-
- try:
- write_to_config_file = (not args.dry_run) and config_file_exists
-
- logger.info("{} to config file {}:".format(
- "Would write" if not write_to_config_file else "Writing",
- config_file,
- ))
-
- config.write(new_config)
- logger.info(new_config.getvalue())
-
- if write_to_config_file:
- with io.open(config_file, 'wb') as f:
- f.write(new_config.getvalue().encode('utf-8'))
-
- except UnicodeEncodeError:
- warnings.warn(
- "Unable to write UTF-8 to config file, because of an old configparser version. "
- "Update with `pip install --upgrade configparser`."
- )
-
- if config_file_exists:
- commit_files.append(config_file)
-
- if not vcs:
- return
-
- assert vcs.is_usable(), "Did find '{}' unusable, unable to commit.".format(vcs.__name__)
-
- do_commit = (not args.dry_run) and args.commit
- do_tag = (not args.dry_run) and args.tag
-
- logger.info("{} {} commit".format(
- "Would prepare" if not do_commit else "Preparing",
- vcs.__name__,
- ))
-
- for path in commit_files:
- logger.info("{} changes in file '{}' to {}".format(
- "Would add" if not do_commit else "Adding",
- path,
- vcs.__name__,
- ))
-
- if do_commit:
- vcs.add_path(path)
-
- vcs_context = {
- "current_version": args.current_version,
- "new_version": args.new_version,
- }
- vcs_context.update(time_context)
- vcs_context.update(prefixed_environ())
-
- commit_message = args.message.format(**vcs_context)
-
- logger.info("{} to {} with message '{}'".format(
- "Would commit" if not do_commit else "Committing",
- vcs.__name__,
- commit_message,
- ))
-
- if do_commit:
- vcs.commit(message=commit_message)
-
- tag_name = args.tag_name.format(**vcs_context)
- logger.info("{} '{}' in {}".format(
- "Would tag" if not do_tag else "Tagging",
- tag_name,
- vcs.__name__
- ))
-
- if do_tag:
- vcs.tag(tag_name)
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bumpversion-0.5.3/bumpversion.egg-info/PKG-INFO new/bumpversion-0.6.0/bumpversion.egg-info/PKG-INFO
--- old/bumpversion-0.5.3/bumpversion.egg-info/PKG-INFO 2015-04-15 11:14:21.000000000 +0200
+++ new/bumpversion-0.6.0/bumpversion.egg-info/PKG-INFO 2020-05-14 04:18:10.000000000 +0200
@@ -1,12 +1,19 @@
Metadata-Version: 1.1
Name: bumpversion
-Version: 0.5.3
+Version: 0.6.0
Summary: Version-bump your software with a single command!
Home-page: https://github.com/peritus/bumpversion
Author: Filip Noetzel
Author-email: filip+bumpversion(a)j03.de
License: MIT
-Description: ===========
+Description: **������ Current status of this project**
+
+ * ����If you want to start **using bumpversion**, you're best advised to **install one of the maintained forks**, e.g. ��� `@c4urself's bump2version <https://github.com/c4urself/bump2version/#installation>`_.
+ * ����If you want to **help maintain** bumpversion, there's an `ongoing discussion about merging the fork back to the original project as well as forming a group of maintainers <https://github.com/c4urself/bump2version/issues/86>`_ to ensure a long-term future for this project. Please contribute.
+
+ -----
+
+ ===========
bumpversion
===========
@@ -131,7 +138,7 @@
Also available on the command line as ``(--tag | --no-tag)``.
``tag_name =``
- **default:** "``v{new_version}``"
+ **default:** ``v{new_version}``
The name of the tag that will be created. Only valid when using ``--tag`` / ``tag = True``.
@@ -153,7 +160,7 @@
Also available as ``(--commit | --no-commit)``.
``message =``
- **default:** "``Bump version: {current_version} ��� {new_version}``"
+ **default:** ``Bump version: {current_version} ��� {new_version}``
The commit message to use when creating a commit. Only valid when using ``--commit`` / ``commit = True``.
@@ -242,7 +249,7 @@
``[bumpversion:file:���]``
``parse =``
- **default:** "``(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)``"
+ **default:** ``(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)``
Regular expression (using `Python regular expression syntax
<http://docs.python.org/2/library/re.html#regular-expression-syntax>`_) on
@@ -254,7 +261,7 @@
Also available as ``--parse``
``serialize =``
- **default:** "``{major}.{minor}.{patch}``"
+ **default:** ``{major}.{minor}.{patch}``
Template specifying how to serialize the version parts back to a version
string.
@@ -280,7 +287,7 @@
given like ``--serialize {major}.{minor} --serialize {major}``
``search =``
- **default:** "``{current_version}``"
+ **default:** ``{current_version}``
Template string how to search for the string to be replaced in the file.
Useful if the remotest possibility exists that the current version number
@@ -289,7 +296,7 @@
<http://docs.python.org/2/library/string.html#format-string-syntax>`_.
``replace =``
- **default:** "``{new_version}``"
+ **default:** ``{new_version}``
Template to create the string that will replace the current version number in
the file.
@@ -341,6 +348,27 @@
``-h, --help``
Print help and exit
+ Using bumpversion in a script
+ =============================
+
+ If you need to use the version generated by bumpversion in a script you can make use of
+ the `--list` option, combined with `grep` and `sed`.
+
+ Say for example that you are using git-flow to manage your project and want to automatically
+ create a release. When you issue `git flow release start` you already need to know the
+ new version, before applying the change.
+
+ The standard way to get it in a bash script is
+
+ bumpversion --dry-run --list <part> | grep <field name> | sed -r s,"^.*=",,
+
+ where <part> is as usual the part of the version number you are updating. You need to specify
+ `--dry-run` to avoid bumpversion actually bumping the version number.
+
+ For example, if you are updating the minor number and looking for the new version number this becomes
+
+ bumpversion --dry-run --list minor | grep new_version | sed -r s,"^.*=",,
+
Development
===========
@@ -370,7 +398,10 @@
Changes
=======
- **unreleased**
+ **0.6.0**
+
+ - Deprecation: publish package that links to the newer bump2version for seamless
+ upgrades (see: https://www.python.org/dev/peps/pep-0423/#id106)
**v0.5.3**
@@ -506,7 +537,7 @@
Platform: UNKNOWN
-Classifier: Development Status :: 4 - Beta
+Classifier: Development Status :: 7 - Inactive
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bumpversion-0.5.3/bumpversion.egg-info/SOURCES.txt new/bumpversion-0.6.0/bumpversion.egg-info/SOURCES.txt
--- old/bumpversion-0.5.3/bumpversion.egg-info/SOURCES.txt 2015-04-15 11:14:22.000000000 +0200
+++ new/bumpversion-0.6.0/bumpversion.egg-info/SOURCES.txt 2020-05-14 04:18:10.000000000 +0200
@@ -1,10 +1,10 @@
+LICENSE.rst
MANIFEST.in
README.rst
setup.cfg
setup.py
-bumpversion/__init__.py
bumpversion.egg-info/PKG-INFO
bumpversion.egg-info/SOURCES.txt
bumpversion.egg-info/dependency_links.txt
-bumpversion.egg-info/entry_points.txt
+bumpversion.egg-info/requires.txt
bumpversion.egg-info/top_level.txt
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bumpversion-0.5.3/bumpversion.egg-info/entry_points.txt new/bumpversion-0.6.0/bumpversion.egg-info/entry_points.txt
--- old/bumpversion-0.5.3/bumpversion.egg-info/entry_points.txt 2015-04-15 11:14:21.000000000 +0200
+++ new/bumpversion-0.6.0/bumpversion.egg-info/entry_points.txt 1970-01-01 01:00:00.000000000 +0100
@@ -1,3 +0,0 @@
-[console_scripts]
-bumpversion = bumpversion:main
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bumpversion-0.5.3/bumpversion.egg-info/requires.txt new/bumpversion-0.6.0/bumpversion.egg-info/requires.txt
--- old/bumpversion-0.5.3/bumpversion.egg-info/requires.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/bumpversion-0.6.0/bumpversion.egg-info/requires.txt 2020-05-14 04:18:10.000000000 +0200
@@ -0,0 +1 @@
+bump2version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bumpversion-0.5.3/bumpversion.egg-info/top_level.txt new/bumpversion-0.6.0/bumpversion.egg-info/top_level.txt
--- old/bumpversion-0.5.3/bumpversion.egg-info/top_level.txt 2015-04-15 11:14:21.000000000 +0200
+++ new/bumpversion-0.6.0/bumpversion.egg-info/top_level.txt 2020-05-14 04:18:10.000000000 +0200
@@ -1 +1 @@
-bumpversion
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bumpversion-0.5.3/setup.cfg new/bumpversion-0.6.0/setup.cfg
--- old/bumpversion-0.5.3/setup.cfg 2015-04-15 11:14:23.000000000 +0200
+++ new/bumpversion-0.6.0/setup.cfg 2020-05-14 04:18:10.000000000 +0200
@@ -4,5 +4,4 @@
[egg_info]
tag_build =
tag_date = 0
-tag_svn_revision = 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/bumpversion-0.5.3/setup.py new/bumpversion-0.6.0/setup.py
--- old/bumpversion-0.5.3/setup.py 2015-04-15 11:12:43.000000000 +0200
+++ new/bumpversion-0.6.0/setup.py 2020-05-14 04:17:55.000000000 +0200
@@ -11,21 +11,18 @@
setup(
name='bumpversion',
- version='0.5.3',
+ version='0.6.0',
url='https://github.com/peritus/bumpversion',
author='Filip Noetzel',
author_email='filip+bumpversion(a)j03.de',
license='MIT',
- packages=['bumpversion'],
+ install_requires=[
+ 'bump2version',
+ ],
description=description,
long_description=long_description,
- entry_points={
- 'console_scripts': [
- 'bumpversion = bumpversion:main',
- ]
- },
classifiers=(
- 'Development Status :: 4 - Beta',
+ 'Development Status :: 7 - Inactive',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package youtube-dl for openSUSE:Factory checked in at 2021-12-29 21:10:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/youtube-dl (Old)
and /work/SRC/openSUSE:Factory/.youtube-dl.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "youtube-dl"
Wed Dec 29 21:10:53 2021 rev:172 rq:943036 version:2021.12.17
Changes:
--------
New Changes file:
--- /dev/null 2021-12-09 00:52:20.582305468 +0100
+++ /work/SRC/openSUSE:Factory/.youtube-dl.new.2520/python-youtube-dl.changes 2021-12-29 21:11:22.550306204 +0100
@@ -0,0 +1,1935 @@
+-------------------------------------------------------------------
+Tue Dec 28 10:40:29 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- The youtube-dl SRPM (producing: yt-dlp BRPM) switches back from the
+ yt-dlp source to the to youtube-dl source and produces the
+ youtube-dl BRPM again. (Project has seen activity).
+ yt-dlp is now its own SRPM.
+- Switch to youtube-dl 2021.12.17
+ * youtube: Update signature function patterns
+ * liveleak: Remove extractor
+ * orf:tvthek: Add support for MPD formats
+
+-------------------------------------------------------------------
+Sun Jun 27 15:13:03 UTC 2021 - Matej Cepl <mcepl(a)suse.com>
+
+- Update to 2021.06.06
+ * [facebook] Improve login required detection
+ * [youporn] Fix formats and view count extraction
+ * [orf:tvthek] Fix thumbnails extraction
+ * [formula1] Fix extraction
+ * [ard] Relax URL regular expression and fix video ids
+ * [ustream] Detect https embeds
+ * [ted] Prefer own formats over external sources
+ * [twitch:clips] Improve extraction
+ * [twitch:clips] Add access token query to download URLs
+ * [youtube] Fix get_video_info request
+ * [vimeo] Fix vimeo pro embed extraction
+ * [redbulltv] Fix embed data extraction
+ * [shahid] Relax URL regular expression
+
+-------------------------------------------------------------------
+Thu May 20 09:51:10 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.05.16
+ * Add support for sibnet embeds
+
+-------------------------------------------------------------------
+Fri Apr 16 20:53:44 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.04.17
+ * [curiositystream] fix format extraction
+ * [cbssports] fix extraction
+ * [mtv] Fix Viacom A/B Testing Video Player extraction
+ * [youtube:tab] Pass innertube context and x-goog-visitor-id
+ header along with continuation requests
+ * [youtube] Improve URL to extractor routing
+ * [youtube] Add more invidious instances
+ * [youtube:tab] Detect series playlist on playlists page
+ * [youtube:tab] Improve grid extraction
+ * [youtube] Improve stretch extraction and fix stretched ratio
+ calculation
+ * [utils] Add support for support for experimental HTTP
+ response status code 308 Permanent Redirect
+
+-------------------------------------------------------------------
+Tue Apr 6 23:01:41 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.04.07
+ * youtube: Add support for hashtag videos extraction
+
+-------------------------------------------------------------------
+Wed Mar 31 22:09:07 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.04.01
+ * youtube: fix playlist/comunity continuation items extraction
+ * vimeo: fix unlisted video extraction
+ * youtube: fix video's channel extraction
+ * youtube: imporve age-restricted video extraction
+ * youtube: setup CONSENT cookie when needed
+
+-------------------------------------------------------------------
+Sat Mar 27 09:06:30 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.03.25
+ * Improve extraction for RTVE, Applepodcasts, SVTPlay
+
+-------------------------------------------------------------------
+Sun Mar 14 10:55:52 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.03.14
+ * voxmedia: fix volume embed extraction
+ * cbs: add support for Paramount+
+ * southpark: Fix extraction and add support for
+ southparkstudios.com
+
+-------------------------------------------------------------------
+Wed Mar 3 08:48:39 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.03.03
+ * bbc: add support for BBC Reel videos
+
+-------------------------------------------------------------------
+Mon Mar 1 23:29:51 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.03.02
+ * youtube: fix get_video_info request
+ * zdf: Rework extractors
+
+-------------------------------------------------------------------
+Sun Feb 21 23:26:29 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.02.22
+ * vimeo: Add support for unlisted video source format extraction
+ * youtube: Fix uploader extraction in flat playlist mode
+
+-------------------------------------------------------------------
+Wed Feb 10 16:02:07 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.02.10
+ * youtube: Add support for phone/tablet JS player
+ * youtube: Extract ABR and VBR
+
+-------------------------------------------------------------------
+Wed Feb 3 22:12:54 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.02.04
+ * medialaan: add support DPG Media MyChannels based websites
+ * youtube: improve DASH formats file size extraction
+
+-------------------------------------------------------------------
+Sun Jan 24 11:16:42 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.01.24.1
+ * aol: add support for yahoo videos
+ * yahoo: fix single video extraction
+ * aljazeera: fix extraction
+ * ard: Fix title and description extraction and update tests
+ * spotify: Add new extractor for Spotify Podcasts
+
+-------------------------------------------------------------------
+Sat Jan 16 21:07:57 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.01.16
+ * Protect from infinite recursion due to recursively nested
+ playlists
+
+-------------------------------------------------------------------
+Sun Jan 10 08:43:45 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.01.08
+ * twitter: Add support for summary card
+
+-------------------------------------------------------------------
+Sun Jan 3 10:41:25 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2021.01.03
+ * sky: add support for Sports News articles and Brighcove videos
+
+-------------------------------------------------------------------
+Wed Dec 30 23:04:15 UTC 2020 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2020.12.31
+ * Allow format filtering using audio language
+
+-------------------------------------------------------------------
+Mon Dec 28 20:02:53 UTC 2020 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2020.12.29
+ * Added support for FXNetworks, live.mewatch.sg, zype/uplynk.
+
+-------------------------------------------------------------------
+Tue Dec 22 09:39:57 UTC 2020 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2020.12.22
+ * nhk: Add support for NHK video programs, audio programs and
+ program clips
+ * Add support for music.yandex.com, more.tv
+
+-------------------------------------------------------------------
+Sun Dec 13 19:35:10 UTC 2020 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2020.12.14
+ * youtube: Add some invidious instances
+ * itv: clean description from HTML tags
+ * linuxacademy] Fix authentication and extraction
+ * downloader/hls] delegate manifests with media initialization
+ to ffmpeg
+
+-------------------------------------------------------------------
+Sat Dec 12 00:31:56 UTC 2020 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2020.12.12
+ * Updates to Facebook video extraction
+
+-------------------------------------------------------------------
+Wed Dec 9 01:58:16 UTC 2020 - Jan Engelhardt <jengelh(a)inai.de>
+
+- Update to release 2020.12.09
+ * slideslive: Add support for yoda service videos and
+ extract subtitles
+ * youtube:tab: Capture and output alerts
+ * telequebec: Fix Extraction and Add Support for
+ video.telequebec.tv
+
+-------------------------------------------------------------------
+Sun Dec 6 19:20:13 UTC 2020 - Jan Engelhardt <jengelh(a)inai.de>
+
++++ 1738 more lines (skipped)
++++ between /dev/null
++++ and /work/SRC/openSUSE:Factory/.youtube-dl.new.2520/python-youtube-dl.changes
--- /work/SRC/openSUSE:Factory/youtube-dl/youtube-dl.changes 2021-12-02 02:29:15.411778013 +0100
+++ /work/SRC/openSUSE:Factory/.youtube-dl.new.2520/youtube-dl.changes 2021-12-29 21:11:22.650306287 +0100
@@ -2 +2 @@
-Wed Dec 1 00:47:35 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
+Tue Dec 28 10:40:29 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
@@ -4,90 +4,8 @@
-- Update to release 2021.12.01
- * Add option --wait-for-video to wait for scheduled streams
- * Clarify video/audio-only formats in -F
-
--------------------------------------------------------------------
-Mon Nov 29 16:10:16 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
-
-- Update to release 2021.11.10.1
- * Fix youtube throttling by decrypting n-sig
- * Separate --check-all-formats from --check-formats
- * Add negative option --no-batch-file
- * Allow duration strings in --match-filter
-- Drop ceskatelevize_fix_POST_request.patch (inapplicable)
-
--------------------------------------------------------------------
-Sun Oct 31 22:27:19 UTC 2021 - Matej Cepl <mcepl(a)suse.com>
-
-- Add ceskatelevize_fix_POST_request.patch to fix
- gh#ytdl-org/youtube-dl#30172.
-
--------------------------------------------------------------------
-Sun Oct 31 12:19:20 UTC 2021 - Matej Cepl <mcepl(a)suse.com>
-
-- Update to 2021.10.22:
- - [docs] Migrate issues to use forms by Ashish0804
- - [downloader] Fix slow progress hooks
- - This was causing HLS/DASH downloads to be extremely slow in some situations
- - [downloader/ffmpeg] Improve simultaneous download and merge
- - [EmbedMetadata] Allow overwriting all default metadata with meta_default key
- - [ModifyChapters] Add ability for --remove-chapters to remove sections by timestamp
- - [utils] Allow duration strings in --match-filter
- - Add HDR information to formats
- - Add negative option --no-batch-file by Zirro
- - Calculate more fields for merged formats
- - Do not verify thumbnail URLs unless --check-formats is specified
- - Don't create console for subprocesses on Windows
- - Fix --restrict-filename when used with default template
- - Fix check_formats output being written to stdout when -qv
- - Fix bug in storyboards
- - Fix conflict b/w id and ext in format selection
- - Fix verbose head not showing custom configs
- - Load archive only after printing verbose head
- - Make duration_string and resolution available in --match-filter
- - Re-implement deprecated option --id
- - Reduce default --socket-timeout
- - Write verbose header to logger
- - [outtmpl] Fix bug in expanding environment variables
- - [cookies] Local State should be opened as utf-8
- - [extractor,utils] Detect more codecs/mimetypes
- - [extractor] Detect EXT-X-KEY Apple FairPlay
- - [utils] Use importlib to load plugins by sulyi
- - [http] Retry on socket timeout and show the last encountered error
- - [fragment] Print error message when skipping fragment
- - [aria2c] Fix --skip-unavailable-fragment
- - [SponsorBlock] Obey extractor-retries and sleep-requests
- - [Merger] Do not add aac_adtstoasc to non-hls audio
- - [ModifyChapters] Do not mutate original chapters by nihil-admirari
- - [devscripts/run_tests] Use markers to filter tests by sulyi
- - [7plus] Add cookie based authentication by nyuszika7h
- - [AdobePass] Fix RCN MSO by jfogelman
- - [CBC] Fix Gem livestream by makeworld-the-better-one
- - [CBC] Support CBC Gem member content by makeworld-the-better-one
- - [crunchyroll] Add season to flat-playlist Closes #1319
- - [crunchyroll] Add support for beta.crunchyroll URLs and fix series URLs with language code
- - [EUScreen] Add Extractor by Ashish0804
- - [Gronkh] Add extractor by Ashish0804
- - [hidive] Fix typo
- - [Hotstar] Mention Dynamic Range in format_id by Ashish0804
- - [Hotstar] Raise appropriate error for DRM
- - [instagram] Add login by u-spec-png
- - [instagram] Show appropriate error when login is needed
- - [microsoftstream] Add extractor by damianoamatruda, nixklai
- - [on24] Add extractor by damianoamatruda
- - [patreon] Fix vimeo player regex by zenerdi0de
- - [SkyNewsAU] Add extractor by Ashish0804
- - [tagesschau] Fix extractor by u-spec-png
- - [tbs] Add tbs live streams by llacb47
- - [tiktok] Fix typo and update tests
- - [trovo] Support channel clips and VODs by Ashish0804
- - [Viafree] Add support for Finland by 18928172992817182
- - [vimeo] Fix embedded player.vimeo
- - [vlive:channel] Fix extraction by kikuyan, pukkandan
- - [youtube] Add auto-translated subtitles
- - [youtube] Expose different formats with same itag
-
--------------------------------------------------------------------
-Fri Oct 15 13:49:01 UTC 2021 - Jan Engelhardt <jengelh(a)inai.de>
-
-- Switch to yt-dlp 2021.10.10 codebase
- * Address youtube download speed being capped at 80KB/s
+- The youtube-dl SRPM (producing: yt-dlp BRPM) switches back from the
+ yt-dlp source to the to youtube-dl source and produces the
+ youtube-dl BRPM again. (Project has seen activity).
+ yt-dlp is now its own SRPM.
+- Switch to youtube-dl 2021.12.17
+ * youtube: Update signature function patterns
+ * liveleak: Remove extractor
+ * orf:tvthek: Add support for MPD formats
Old:
----
yt-dlp.tar.gz
New:
----
pre_checkin.sh
python-youtube-dl.changes
python-youtube-dl.spec
youtube-dl-2021.12.17.tar.gz
youtube-dl-2021.12.17.tar.gz.sig
youtube-dl.keyring
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-youtube-dl.spec ++++++
#
# spec file for package python-youtube-dl
#
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define modname youtube-dl
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-youtube-dl
Version: 2021.12.17
Release: 0
Summary: A Python module for downloading from video sites for offline watching
License: CC-BY-SA-3.0 AND SUSE-Public-Domain
Group: Development/Languages/Python
URL: https://yt-dl.org/
#Git-Clone: https://github.com/ytdl-org/youtube-dl
Source: http://youtube-dl.org/downloads/%version/%modname-%version.tar.gz
Source2: http://youtube-dl.org/downloads/%version/%modname-%version.tar.gz.sig
Source3: %modname.keyring
BuildRequires: %{python_module devel}
BuildRequires: %{python_module xml}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: ffmpeg
Requires: python-xml
BuildArch: noarch
%python_subpackages
%description
youtube-dl is a python module to retrieve videos from
YouTube.com and other video sites for later watching.
%prep
%autosetup -n %modname
%build
# remove shebang
sed -e '1d' -i youtube_dl/__init__.py youtube_dl/__main__.py \
youtube_dl/YoutubeDL.py youtube_dl/utils.py
%python_build
%install
%python_install
rm -rf %buildroot/%_bindir/youtube-dl %buildroot/%_bindir \
%buildroot/%_prefix/%_sysconfdir \
%buildroot/%_datadir %buildroot/%_mandir
%python_expand %fdupes -s %buildroot/%{$python_sitelib}
%files %python_files
%license LICENSE
%doc README.txt
%python_sitelib/youtube_dl
%python_sitelib/youtube_dl-*-py%python_version.egg-info
%changelog
++++++ youtube-dl.spec ++++++
--- /var/tmp/diff_new_pack.breP9Z/_old 2021-12-29 21:11:23.254306783 +0100
+++ /var/tmp/diff_new_pack.breP9Z/_new 2021-12-29 21:11:23.262306790 +0100
@@ -17,98 +17,86 @@
Name: youtube-dl
-Version: 2021.12.01
+Version: 2021.12.17
Release: 0
Summary: A tool for downloading from video sites for offline watching
License: CC-BY-SA-3.0 AND SUSE-Public-Domain
Group: Productivity/Networking/Web/Utilities
-URL: https://github.com/yt-dlp/yt-dlp
-Source: https://github.com/yt-dlp/yt-dlp/releases/download/%version/yt-dlp.tar.gz
+URL: https://yt-dl.org/
+#Git-Clone: https://github.com/ytdl-org/youtube-dl
+Source: https://yt-dl.org/downloads/%version/%name-%version.tar.gz
+Source2: https://yt-dl.org/downloads/%version/%name-%version.tar.gz.sig
+Source3: %name.keyring
BuildRequires: make >= 4
BuildRequires: python3-devel
BuildRequires: python3-xml
BuildRequires: zip
-BuildArch: noarch
-
-%description
-youtube-dl is a command-line program to retrieve videos from
-YouTube.com and other video sites for later watching.
-
-youtube-dl is inactive since 2021-07-01; yt-dlp replaces it.
-
-%package -n yt-dlp
-Summary: A tool for downloading from video sites for offline watching
-Group: Productivity/Networking/Web/Utilities
-Obsoletes: youtube-dl <= 2021.06.06
-Provides: youtube-dl = %version-%release
Requires: ffmpeg
Requires: python3
Requires: python3-xml
+BuildArch: noarch
-%description -n yt-dlp
-yt-dlp is a command-line program to retrieve videos from
+%description
+youtube-dl is a command-line program to retrieve videos from
YouTube.com and other video sites for later watching.
-%package -n yt-dlp-bash-completion
-Summary: Bash completion for yt-dlp
+%package bash-completion
+Summary: Bash completion for %name
Group: System/Shells
Requires: bash-completion
-Supplements: packageand(yt-dlp:bash)
-Obsoletes: youtube-dl-bash-completion <= 2021.06.06
+Supplements: (youtube-dl and bash-completion)
+BuildArch: noarch
-%description -n yt-dlp-bash-completion
-Bash command line completion support for yt-dlp.
+%description bash-completion
+Bash command line completion support for %name.
-%package -n yt-dlp-fish-completion
-Summary: Fish completion for yt-dlp
+%package fish-completion
+Summary: Fish completion for %name
Group: System/Shells
Requires: fish
-Supplements: packageand(yt-dlp:fish)
-Obsoletes: youtube-dl-fish-completion <= 2021.06.06
+Supplements: (youtube-dl and fish)
+BuildArch: noarch
-%description -n yt-dlp-fish-completion
-Fish command line completion support for yt-dlp.
+%description fish-completion
+Fish command line completion support for %name.
-%package -n yt-dlp-zsh-completion
-Summary: Zsh Completion for yt-dlp
+%package zsh-completion
+Summary: Zsh Completion for %name
Group: System/Shells
Requires: zsh
-Supplements: packageand(yt-dlp:zsh)
+Supplements: (youtube-dl and zsh)
+BuildArch: noarch
-%description -n yt-dlp-zsh-completion
-ZSH command line completion support for yt-dlp.
+%description zsh-completion
+ZSH command line completion support for %name.
%prep
-%autosetup -p1 -n yt-dlp
+%autosetup -p1 -n %name
%build
-rm -f youtube-dl yt-dlp
-PYTHON="%_bindir/python3" %make_build yt-dlp
+rm -f youtube-dl
+PYTHON="%_bindir/python3" %make_build
%install
-b="%buildroot"
-install -Dvm0755 yt-dlp "$b/%_bindir/yt-dlp"
-ln -sv yt-dlp "$b/%_bindir/youtube-dl"
-install -Dvm0644 completions/bash/yt-dlp "$b/%_datadir/bash-completion/completions/yt-dlp"
-install -Dvm0644 completions/zsh/_yt-dlp "$b/%_datadir/zsh/site-functions/_yt-dlp"
-install -Dvm0644 completions/fish/yt-dlp.fish "$b/%_datadir/fish/completions/yt-dlp.fish"
-install -Dvm0644 yt-dlp.1 "$b/%_mandir/man1/yt-dlp.1"
-echo ".SO yt-dlp.1" >"$b/%_mandir/man1/youtube-dl.1"
+install -Dm 755 youtube-dl %buildroot/%_bindir/%name
+install -Dm 644 youtube-dl.bash-completion %buildroot/%_datadir/bash-completion/completions/%name
+install -Dm 644 youtube-dl.zsh %buildroot/%_datadir/zsh/site-functions/_%name
+install -Dm 644 youtube-dl.fish %buildroot/%_datadir/fish/completions/%name.fish
+install -Dm 644 youtube-dl.1 %buildroot/%_mandir/man1/%name.1
-%files -n yt-dlp
+%files
%license LICENSE
-%doc README.md
-%_bindir/yt-dlp
-%_bindir/youtube-dl
-%_mandir/man1/*.1*
+%doc README.txt
+%_bindir/%name
+%_mandir/man1/%name.1%{?ext_man}
-%files -n yt-dlp-bash-completion
+%files bash-completion
%_datadir/bash-completion/
-%files -n yt-dlp-fish-completion
+%files fish-completion
%_datadir/fish/
-%files -n yt-dlp-zsh-completion
+%files zsh-completion
%_datadir/zsh/
%changelog
++++++ pre_checkin.sh ++++++
#!/bin/bash
cp youtube-dl.changes python-youtube-dl.changes
++++++ youtube-dl.keyring ++++++
pub 4096R/0xDB4B54CBA4826A18 2013-01-11 [expires: 2033-01-06]
Key fingerprint = 7D33 D762 FD6C 3513 0481 347F DB4B 54CB A482 6A18
uid [ unknown] Philipp Hagemeister <phihag(a)phihag.de>
uid [ unknown] Philipp Hagemeister <hagemeister(a)cs.uni-duesseldorf.de>
uid [ unknown] Philipp Hagemeister <philipp.hagemeister(a)uni-duesseldorf.de>
sub 4096R/0x862A257D825E38B8 2013-01-11 [expires: 2033-01-06]
pub 4096R/0x2C393E0F18A9236D 2016-04-09
Key fingerprint = ED7F 5BF4 6B3B BED8 1C87 368E 2C39 3E0F 18A9 236D
uid [ unknown] Sergey M. <dstftw(a)gmail.com>
sub 4096R/0xC3A4FE63297B1CE1 2016-04-09
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBFDvxWcBEADq7H83AZ7p5ZwynJEtxPg4csJqakzhZBwFU+d2pjM40wfCsy8I
KcjKrzgGdYUktDAcXhJ1NiQExemxY2Js0A6+4/6RXH14Qsd1m656Ik6PijwdcS/d
BJ19ybuGKsu+2nuzNgg2H/dFbA1fD3w5dh06kprKPVbP7fMn/N+/4U/Ix9x6g1HN
Dn0/WhSRpPL+HD9K80OVUM/gDKx2LF8cv5ndpV1j73Pi4Wn0mPBhDcg7GKeEosty
ZOlbZjxqOftiP9h9wCKpCsFF/SORhcYs+/KNooJIQ0WbIu52/pGHn0R2PXpqkIXs
U6cA5dqFnnJxfnAiOcMEtDMJDVYFNPfSOTQ9/9tcxjOcAbQq3FkbxZT2Yir0t0va
QuBcD/KCNf/OuWr/LDnts1joGvKcJ2ChGPu5xNjqrggNU1VzBMSWioSqHnuAWjWz
brtocp3lWA5DMhA3z0ak0QMjb4Uf5UFqX2Hc7b6TnDkeQ8j7QQpQM4gt1b1ZRXX8
L9C/eaMokaZjaIxsJJ3b0YxKKbn8u/TqxYYTXqeFbTliBY3NMHGCGCO9BXVCA1la
NAWuqh5a/021Ag1YW9rIPklUdROgg9yYePVd0Nm/UK4uX+lYRlwN4nvlJqVEZWb2
+Cpa7RdJqpjaPKddMd6nYs2MVrwyUJkeU+A/hwspEsoXZLU37IHE3mbJkwARAQAB
tCZQaGlsaXBwIEhhZ2VtZWlzdGVyIDxwaGloYWdAcGhpaGFnLmRlPokCQQQTAQIA
KwIbAwUJJZgGAAYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAlDv0wcCGQEACgkQ
20tUy6SCahgmCQ//fq/wgPXgAN2Q90HcbsEAuML6t59K4u/Rsdiqxi1eFmmrd1r+
5GHQNUK8V2m9pWy0AG3xiqDe37EDDsIsQrx4YwjVUkR4lGKFCTaJjYN/ZIRyD5xX
fSd07RNaMlPPB2ZQKhKsGvXV8rodOchhzV9VhnuFMy0sSCYvrkNPbY2nyKT6XTvE
pGDiIFPQyPkL76LDcn+Q4Joert7QJmO8GsTEZXg9vP+aXHQcdpFPLNAEhAzQNski
84dt22nWTfZLpFtTFVQbvlkLshw/MTe7GRAsBCcjgikWJToE0i+H9gUVw6nLE4em
YL5maKjEghHz7q+qP7F4WKHIyXsU21EmFpAJaUC7F4y9zgp55maciHYr5VCuci2u
0Me24/B6yH3Hq6hkX+0BbsKM77jZGgNbwh+AoWaNIV/M1G7A1Z3Hz0mgkQHEJ51F
fqUbFZsdHvT4Lgq/5gzmQWCkCHDcqp27WQdbJ7kCzDmV2wEHSZpTYhD/hNoBrxo9
56AwQfR7DttalHypCXUZ5wTsD1UV6+3U9yqvTcrw6qEIUfI58W73obxPknuvZgT3
nJ8lQvfF+0g+SW+juqcXR3jXuYyi7BAg4h3l6ws5+wtndwJbiSkHuOGePmcsG+yy
xe7dAiJeONnkndE+lFutNOeR5yvSmHTctIg+b/O23J72zBZFAWLqzLzL29C0N1Bo
aWxpcHAgSGFnZW1laXN0ZXIgPGhhZ2VtZWlzdGVyQGNzLnVuaS1kdWVzc2VsZG9y
Zi5kZT6JAj4EEwECACgFAlDvx3sCGwMFCSWYBgAGCwkIBwMCBhUIAgkKCwQWAgMB
Ah4BAheAAAoJENtLVMukgmoY+KUQAIUZBKrLMQjK51I1HhhXha/oNoP4VkGQhurZ
4206X45Fj+5Y1u8oj0ytosALOkKf1c3YkHyWCqh5q0hgUgElBfXnEzsI8/RtyPHQ
dMgAa5cixKgqrMPJgm72FUo6N76brgTiroxDbMPInqTBxv1ax3+aifMq77giKMJd
e109TT84kAju9JVJcL726CYXBxACMTRJCsm4sJx4LNqkIhGoz1IdanHXMeMEN/Sg
rA8jlDZglSGnn07J8uIgKJw9iKozFz/GOjfwdJ/0k7i1GplkkCxD5jCnGOMI9t0M
UMtENMZF5bZim3aOLhLE0ebcjWw9m0ALLMv74y3vJQorHlvbO2AMOhdQPeUY/fjA
uiNJnHu4QuQJSaxogyCsyeah+SWGIXA1lrUy99xdLjBWL4/IV7XdWwlT19GW63nA
hmudoPjTTk8stJ0dDINxlpMifuti7noGozpOhhFUxwmG+FD1qt/qr8DryrWXOeux
V2XVIG4rYrSspVWHInvzkRG0evn+JFKIo5yc5dEnerswvODBiVdJWSTyFkFAr3X/
ffoO7AodpWzTMMxLcfmA8ZqfFg6afjv8HDVOfYbUJ7PmwDtPsiHRp0jiAAFoTmAk
392qWk8vob08GMkUvyVimuxjFuJEWHqri4LGKdPzrrtXkBegtjMUOu6+wT0qKH7x
npiTLYE8tDxQaGlsaXBwIEhhZ2VtZWlzdGVyIDxwaGlsaXBwLmhhZ2VtZWlzdGVy
QHVuaS1kdWVzc2VsZG9yZi5kZT6JAj4EEwECACgFAlDvx6ECGwMFCSWYBgAGCwkI
BwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJENtLVMukgmoYKAsQALbzmTK3pr636bb0
CgLCOhjLyWreQOPzMvmfYXkJYF3tYxD110/Vmx2xkWN73iLosuVoiJ6QOjL9zpRJ
o2n+XUYlXfZeNFLwtL2OHoKV5eOujQBMIHDuGI5CYUZesSNVNXi+8j8IjewAZ0VQ
6iMwjhiuahe5GxjxYCqySgDrzg5iFYhIjtIyhfeus/fW74DT3E0TPNIaTYdvUQGB
3MAoqVxBhK3BhNiLmqHb05k8PupxJOzE2mVEzxWdrgjU4RblT5XLunDgiHoK7vKs
D+J/JXLk8kMvWMGXPh80QDALTNyuPbpsU6vbJrnX7uZ5B4PQYkRq5jA3LMXdKKvy
CNQYO8C1rCIXk+sfl8RE3euqw//G5EYvd3U64p8MdWvVKrW57gAaX/jjZkmkM2uX
7TcjcyQtin1nmyF5m/B1nQc6tfYdoA/GsnRyr+ghPuvAylzf/K5SPKrs3KncCE1I
N5jQdA/TNk47lRrs74B7P8JR5lcH9GkRzmuibRtc9c51YbAzjK2sydsvk6ELqG3d
K0vULWEkhoZ0+gFdImjKLnJ8n3nh43V6zWord+a5z+wntCRzfvGMBka2VRGvvxCU
trVOzeNm3smJcHob1iDBYy8oE7ueCig6GOAKfPo2My/K9z5FH3zg6Gb/mx3C7Y3g
uw9xXsGLMRHNhVJ5vGSJel2hCmR/uQINBFDvxWcBEADIkDifHYKXPm/A7M1SsP9q
7sxkCOIkcUjCgXlUhbEehl+3E8s7pizEHXXI/yALgoZHMNmprWAIqoQccanjYnTe
cZH9vy7V1Omi2KKX0/LEeWp9B4Fc9s8Ax0ldppMosC0ydlURn/tv96z9/mM2kxOW
m6qRmQzSCjLQv1d9fD4h9BgFjHaGnlxbYKPdGo5BCYfz4mlDzrN0mYLq6iVYaHXG
IVcpUkBw2nUbu/oS8h5VNjuv4fRSVPmwvJATDCR++8FlRy5NoHfCv/7BKH6zE+34
5FxFFfwR2VpIgJY6j/MlPB9UBo/TcsJGQwkMqqc3x7p8tj0aQyLxXfhh73vnSwfK
P+QrFWpnJ3bhMXd69vqowMSgOF6WU5oBc085d/mgVKITFvjgp0P7xAwvLTy9NBvU
GWPiBh1jTJnOR4DhLlBompwRiVm0laJ39+GHZVv5z1u2XnbwM95OpwoeG9n/dp7q
OAAeYsVtWqaBx8YaR3U2wXfgT90+rKxb3IiRaMzCw1AVklzctQul/1RIR45m6Wv5
aZRtPrV7rU5HoiLXaolTNebxts3LkNhwtVLt2yTJ9KAHeVmZdggKemacNCeyb0jR
+e0WR5sEY23ybtbCGtKWb+Z9ymr3WwGrJBcIg7KzgJUflpL0scrw7uV8vGhZp7Eb
oMwRVn+8og/2FTi4uTu6yQARAQABiQIlBBgBAgAPBQJQ78VnAhsMBQklmAYAAAoJ
ENtLVMukgmoYLksP/29RoOkJiDi7uhCKSHCJRyXp9qJzYUphFX8OQGV6M164YNOm
Vj0SFFjnivqssixwpDsdr/pTa/rY/mNh7dYemiMb+03kLfix2DRR+5pu9/+2TRSZ
end/UwrAqQeGIIpJC/jvOd0ScDtZ0XPoTWdVJFPH6ERNJGqiLbkzi4C9sIARxOvY
r+v24vfTdOF3Wp8rLNqeqcL//ch89F6lg8cmMpc52Vfo+9+TlWZP0HZPfmZzU+0g
D0RC5q44SqifXS3N4UiocUHGO3oHex92irZvYhRQes5AZNPiSu+VWz/gZlz1izqU
LLSa7vFohg7l7QuWXYi1pjxMW27qXPqb4DWCUV+qjY0uI1jMdLFNrbfHsRP4HyuB
g8wpfqrkN8PdQVk41x4pr1IYlEbeWte96+zIuadp5VPEN+831CWjHtOFHGmp1eVX
f9leDwpPeI1glDDWCLeAXPk7RtWJsMrUgEDOjqQrPCXpm3TIwFjTIbsGxPwL0ddr
e3VmiQ2XsP8XJ3L+pzH9+MBi7zGR0/YEZzc8o5a7fgSFPirPNxUGs2ctJPth0sqM
gzL3zp2zvdJAK4wqI8i7G09kdWDriqNXwWgdRU0hBRaODOWa5pbcQJaB+8Tmm95h
VVr6f1zVnGSLqVGRdy6dCXV2el8drFHDuYicg3xb0J+Q9hQlf6vsnd02JBjVmQIN
BFcJbH8BEADGy4sdmhLgGphuEsTWWWu6N4kQLD/kmqjP3Y83OG+v5iGG+vcYXKk1
t6qEYB83Pbn6EKHKLquAydqzXwY/wcapqSGbXAjt96DsCQnj5XqS7XKfo9t/idg4
0QD9Nbb0HvdzIk83/tKT4hQVB+TJY9ttfmADJXtMQP6CIDInm+x/llo3p+IhXVNg
KuLVWVciVn+ZDaq4/HrXXINGfx5+Tuzqg1cGNOIVUWno94uHQ1PKVkMK7+HQe0I6
1Tz3oXLfZTer3OjK9Cr37k/927Rvcp2Adz5zdgucMFjn2Itopux+1t6e+Q3rfL0t
tO+PTtuZmJZBklugxcjgv6MbZBrKbAVeHHPfjf6TziG++kPypmJlf2aRj1FdrY0V
ukthZNfrjAmMdUGL/HPhmt2PLAb8bqDAdIYIjUNJ7NBuG61Tv2aYvNE9fW2Tv0RA
HPbVRJmKUCprWzuDFq0NAPFwMSqGw5BjOdRj8zrf7pB17R/oVGnr7Jn4iUZdyzNC
OfTPNEWdKs9Qe//nSCUfgP5XdFYP1jhmN0ADg6hXcg2mxI60li0OGVk0mbTKrOM7
TDDQSx0JuMqW4Knv6hn6R6bpAy1m7UTZjP3B9tEum6BHbLMOQ6XPgaHJVc/ZuC+V
YlnyCF/MXdJS36Pdf2c4dQiBc4UJPxnruwV8Cxt7x+KwGcsAECoJnwARAQABtBxT
ZXJnZXkgTS4gPGRzdGZ0d0BnbWFpbC5jb20+iQI4BBMBAgAiBQJXCWx/AhsDBgsJ
CAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRAsOT4PGKkjbfXsEACOT4sFrO8aiTwy
xb4aF+w7K9ClkvKY6gKwufhaEZPkt1VMjZ9Kl0kUljl92rfp3nfI0KwNoXMw4obB
Eq5VSHa0j6zj9JgZk1k5WitdfJwi5oZ6lTbnZcNopzOII/rkZxfPlq8+LfLsxKlM
jVxT88NL31beITxqB5bWPgTw+oBp1UjKzMLGUEMNAJr7APdzSQ1Mmo4S4+wq26A3
+H84dQXSB9bLF1Ia+x4pKE8fEb4lYoXUyH1QAep3XQ3Yv1dSyPcbYUWcworCZc8u
2nwuZWqGXr84LbEAxmVxagiIkBp/AphIjzCFiDkrGg22RHCQ+Eq0QTX1quy+KXo5
g1ZwCzjqVtfPYt6f8R6UYko05UheoS+DLXgZXcppNDRkKnALqrpLutpzG9EUGJi/
iDdnbUonxqp+p4qJ8XG2XhA2JBC5S5TAa6AiaXyWkZmR658x/CdeHduVoOePoodY
CoR7lti+DkBjnMINCfw9p0LiGOq0VkeCG3ObfmS0A7cYMKlYzZuKsgMijAu1NPhH
4UT0JfKg3bctOLLEJn+QQuwyE707LepgPEBMN1h8LEl7GDpWevAf8ONbo00lMRjk
RfcbFT5oS+rwj0TIMRyaQEC6D8J4kq8ok/YT3eC6Z9fPrJdRfHa/beOJOaawTyfo
2f19MrA3EPMMRfi38IJhyJyOONcW/7kCDQRXCWx/ARAAvdygakE5NpJyTeN32Odl
ctkO7kO7xlRrLS3lFdgJdNH2gINhH3aqG3kAYoHa+Bac3S+IGtx+5OSM1TX9tRMg
utXGcObmGq5OW81Q2fzmKYBhlY/n0eVR2ecXBgqGvXVrLzJGIOfb0MvugW2mPQTK
MR6Z5dlXph67qlCn0BadsM3JSyB18ketSjwZ5qzBdc4pBNULRzqdJumaYibsaV3I
vAzWR3bU5ejt1GKysFqtxp3b+SCDLCJyaD1ti31EeQCO48TaTt560V6CQo72YGkw
LGofoaazHu/1pPsRuAFbFVDKUVJfFHb5PBD23eOp/ZXdHN9OUUfb3Kfnp5d+nsKo
XHau3RmUBj0kagiIXGZAtmjme+AEhndI5th45VEAHgKqmkOL6rKlJjMv9xj5emtf
+9Mhs5itkHZ8xolC4q3GLv6uFC31n4s5aCIPnaixZ+ddkJMH3ZJwaigpgWENYHef
wJZ81VLkmaghvkCxMu4snKTvvFwktOJU8r7bMQ7jchNtoCRgJMEfcalgiIINDkNX
wnqWJs8EoGgss1kHYCbYAzKPJkZ3/pSW/6kII8v7nkza32akx49KT0Wgw5dE4j0M
+o4cIfqG23J3QWbwIull0Po4uFG1Di+1Yl7f3G8uY2R/VTa0z5PA1bZRa2vxhnsN
ZVgsTkss8dblajLLMZYnyMkAEQEAAYkCHwQYAQIACQUCVwlsfwIbDAAKCRAsOT4P
GKkjbbWiD/46qZrRTNst+WIcFdEc5poK/JTd4PiOBPB6o7gsKkIobBEG+DsrHbQU
ztTRcZC500NQ2xjDzvUtKcYOQ6Ers9Iyg05HiIXIjlcJbU/Rdxhp3pZXexR4qasu
rUfL/Wv7Q2YUwjpZe0wCqODgbhAt2VNlWzx9UwrDwHcWwoLKKAjGoLhBualzAvEs
bkjQdBT8bUeVDId/S1XlBWYjc75GvnFjJdpvEux6O2oCstJjOKHEb+sXvx6N6i/l
HByR1vkrkUpHDHaROcSTPF46326hoDLPcAuIy/8D4UUJcwjmDfL4c4vYBdHi1cjk
zYP0CbaO8DuOYZ0kycNgCAj4gOeJoRabfv/O2bGgsmmoW4uWAGAD7etAFigu2BKl
qWqJfah/ABvHqJwDrXuu/aw7gOpVY/BGj3UNVDlpM0b+KpemN/MYIq9W8zmaSkrG
eYQbveHlXP9/wa7z80y2fP33BXFZzjrmM93FIAjcqrgNIQUl1FUcQwomIMkG/vAr
q5tzcgLAdUOHMp/bn9Zfk/aswFrX3xtk+No+h48B3VygZH6ILpn2EXlFMxo1s195
hR93U2d0uO+tjAW2+11NDWMH8EfQVKh7R2EQ2Ju6GKEJS7cbPpFO7TNwrsvgfOiS
Vd7feUVfcw+x75gQrvpm4kXrSj61eZixPUcj9xhbx8xGitoN8Vf0oQ==
=Re0d
-----END PGP PUBLIC KEY BLOCK-----
1
0
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-astropy for openSUSE:Factory checked in at 2021-12-29 21:10:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-astropy (Old)
and /work/SRC/openSUSE:Factory/.python-astropy.new.2520 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-astropy"
Wed Dec 29 21:10:52 2021 rev:29 rq:942986 version:5.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-astropy/python-astropy.changes 2021-12-28 12:26:56.196498445 +0100
+++ /work/SRC/openSUSE:Factory/.python-astropy.new.2520/python-astropy.changes 2021-12-29 21:11:20.634304629 +0100
@@ -1,0 +2,35 @@
+Tue Dec 28 20:00:07 UTC 2021 - Ben Greiner <code(a)bnavigator.de>
+
+- Skip flaky test_color_print3
+
+-------------------------------------------------------------------
+Tue Dec 28 12:53:13 UTC 2021 - Ben Greiner <code(a)bnavigator.de>
+
+- Update to version 5.0
+ * https://docs.astropy.org/en/stable/whatsnew/5.0.html
+ * Astropy 5.0 is a major release that adds significant new
+ functionality since the 4.3.x series of releases. In addition,
+ it is a long-term support release (LTS) which will be supported
+ with bug fixes for two years. In particular, this release
+ includes:
+ * Support for reading, writing, and converting Cosmology
+ * Cosmology units module
+ * New Models
+ * Added support for dask arrays in tables
+ * Added support for registering array-like objects as mixin
+ columns
+ * Support for reading and writing tables to Parquet format
+ * Support for reading and writing tables to MRT format
+ * Support for masked quantity columns, including masked FITS
+ columns with units
+ * Converting SkyCoord to QTable
+ * New Unified I/O architecture
+ * In addition to these major changes, Astropy v5.0 includes a
+ large number of smaller improvements and bug fixes, which
+ are described in the Full Changelog.
+ https://docs.astropy.org/en/stable/changelog.html#changelog
+- Drop patches fixed upstream
+ * astropy-pr12006-cfitsio4.patch
+ * astropy-pr12159-py310.patch
+
+-------------------------------------------------------------------
Old:
----
astropy-4.3.1.tar.gz
astropy-pr12006-cfitsio4.patch
astropy-pr12159-py310.patch
New:
----
astropy-5.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-astropy.spec ++++++
--- /var/tmp/diff_new_pack.Cq04NL/_old 2021-12-29 21:11:22.310306007 +0100
+++ /var/tmp/diff_new_pack.Cq04NL/_new 2021-12-29 21:11:22.318306013 +0100
@@ -59,7 +59,7 @@
# upcoming python3 multiflavor: minimum supported python is 3.7
%define skip_python36 1
Name: python-astropy%{psuffix}
-Version: 4.3.1
+Version: 5.0
Release: 0
Summary: Community-developed python astronomy tools
License: BSD-3-Clause
@@ -68,43 +68,46 @@
# Mark wcs headers as false positives for devel-file-in-non-devel-package
# These are used by the python files so they must be available.
Source100: python-astropy-rpmlintrc
-# https://docs.astropy.org/en/v4.3post1/install.html#requirements
-# PATCH-FIX-UPSTREAM astropy-pr12006-cfitsio4.patch gh#astropy/astropy#12006
-Patch1: https://github.com/astropy/astropy/pull/12006.patch#/astropy-pr12006-cfitsi…
-Patch2: https://github.com/astropy/astropy/pull/12159.patch#/astropy-pr12159-py310.…
+# https://docs.astropy.org/en/v5.0/install.html#requirements
BuildRequires: %{python_module Cython >= 0.29.22}
BuildRequires: %{python_module Jinja2}
-BuildRequires: %{python_module devel >= 3.7}
+BuildRequires: %{python_module PyYAML >= 3.13}
+BuildRequires: %{python_module devel >= 3.8}
BuildRequires: %{python_module extension-helpers}
-BuildRequires: %{python_module numpy-devel >= 1.17}
-BuildRequires: %{python_module pyerfa >= 1.7.3}
-BuildRequires: %{python_module setuptools_scm}
+BuildRequires: %{python_module numpy-devel >= 1.18}
+BuildRequires: %{python_module packaging >= 19.0}
+BuildRequires: %{python_module pyerfa >= 2.0}
+BuildRequires: %{python_module setuptools_scm >= 6.2}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: hdf5-devel
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
+Requires: python-PyYAML >= 3.13
Requires: python-dbm
-Requires: python-numpy >= 1.17
-Requires: python-pyerfa >= 1.7.3
+Requires: python-numpy >= 1.18
+Requires: python-packaging >= 19.0
+Requires: python-pyerfa >= 2.0
Requires(post): update-alternatives
Requires(postun):update-alternatives
Recommends: libxml2-tools
Recommends: python-Bottleneck
-Recommends: python-PyYAML >= 3.13
Recommends: python-asdf >= 2.6
Recommends: python-beautifulsoup4
Recommends: python-bleach
Recommends: python-h5py
Recommends: python-html5lib
Recommends: python-jplephem
-Recommends: python-matplotlib >= 3
+Recommends: python-matplotlib >= 3.1
Recommends: python-mpmath
Recommends: python-pandas
+Recommends: python-pyarrow >= 5
Recommends: python-scipy >= 1.1
Recommends: python-setuptools
Recommends: python-sortedcontainers
+Recommends: python-typing_extensions
Conflicts: perl-Data-ShowTable
+Conflicts: python-matplotlib = 3.4.0
%if %{with system_cfitsio}
BuildRequires: pkgconfig(cfitsio)
%endif
@@ -117,18 +120,18 @@
%if %{with test}
# SECTION Optional requirements
BuildRequires: %{python_module Bottleneck}
-BuildRequires: %{python_module PyYAML >= 3.13}
BuildRequires: %{python_module asdf >= 2.6}
BuildRequires: %{python_module beautifulsoup4}
BuildRequires: %{python_module bleach}
BuildRequires: %{python_module h5py}
BuildRequires: %{python_module html5lib}
BuildRequires: %{python_module jplephem}
-BuildRequires: %{python_module matplotlib >= 3}
+BuildRequires: %{python_module matplotlib >= 3.1}
BuildRequires: %{python_module mpmath}
BuildRequires: %{python_module pandas}
-BuildRequires: %{python_module scipy >= 1.1}
+BuildRequires: %{python_module scipy >= 1.3}
BuildRequires: %{python_module sortedcontainers}
+BuildRequires: %{python_module typing_extensions}
BuildRequires: libxml2-tools
# /SECTION
# SECTION test requirements
@@ -136,8 +139,7 @@
BuildRequires: %{python_module astropy = %{version}}
BuildRequires: %{python_module ipython >= 4.2}
BuildRequires: %{python_module objgraph}
-BuildRequires: %{python_module packaging}
-BuildRequires: %{python_module pytest-astropy}
+BuildRequires: %{python_module pytest-astropy >= 0.9}
BuildRequires: %{python_module pytest-mpl}
BuildRequires: %{python_module pytest-xdist}
BuildRequires: %{python_module sgp4}
@@ -155,6 +157,8 @@
%if !%{with test}
%prep
%autosetup -p1 -n astropy-%{version}
+# avoid rpmlint zero-length error for empty module
+echo '# empty module' > astropy/samp/setup_package.py
# Make sure bundled libs are not used
%if %{with system_cfitsio}
@@ -205,8 +209,8 @@
# gh#astropy/astropy#12017
donttest+=" or test_stats"
%endif
-# https://github.com/astropy/astropy/issues/12050
-donttest+=" or (test_no_numpy_warnings and contours)"
+# this one is flaky
+donttest+=" or test_color_print3"
testselect_expr="${donttest:+-k \"not (${donttest# or })\"}"
# http://docs.astropy.org/en/latest/development/testguide.html#running-tests
# running pytest directly would require building the extensions inplace
++++++ astropy-4.3.1.tar.gz -> astropy-5.0.tar.gz ++++++
/work/SRC/openSUSE:Factory/python-astropy/astropy-4.3.1.tar.gz /work/SRC/openSUSE:Factory/.python-astropy.new.2520/astropy-5.0.tar.gz differ: char 5, line 1
++++++ python-astropy-rpmlintrc ++++++
--- /var/tmp/diff_new_pack.Cq04NL/_old 2021-12-29 21:11:22.382306066 +0100
+++ /var/tmp/diff_new_pack.Cq04NL/_new 2021-12-29 21:11:22.386306070 +0100
@@ -1,5 +1,7 @@
addFilter('devel-file-in-non-devel-package .*/wcs/.*')
addFilter('hidden-file-or-dir .*/tests/data/.*')
addFilter('zero-length .*/tests/data/.*')
-addFilter('zero-length .*/index\.html')
+# https://bugzilla.opensuse.org/show_bug.cgi?id=1191584
+addFilter('unstripped-binary-or-object .*python.*\.so')
+addFilter('shared-library-without-dependency-information .*python.*\.so')
1
0