Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-PyMuPDF for openSUSE:Factory checked in at 2021-03-30 21:08:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-PyMuPDF (Old)
and /work/SRC/openSUSE:Factory/.python-PyMuPDF.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-PyMuPDF"
Tue Mar 30 21:08:41 2021 rev:14 rq:875642 version:1.18.9
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-PyMuPDF/python-PyMuPDF.changes 2021-02-23 20:22:15.863754343 +0100
+++ /work/SRC/openSUSE:Factory/.python-PyMuPDF.new.2401/python-PyMuPDF.changes 2021-03-30 21:08:44.209267457 +0200
@@ -1,0 +2,30 @@
+Sat Feb 27 00:04:25 UTC 2021 - John Vandenberg <jayvdb(a)gmail.com>
+
+- Revised License to be AGPL-3.0-only
+- Add %doc
+- Remove COPYING now provided in tarball
+- Update to v1.18.9
+ * Removed ambiguous statements concerning PyMuPDF's license,
+ which is now clearly stated to be GNU AGPL V3
+ * Fixed issue 895
+ * Since v1.17.6 PyMuPDF suppresses the font subset tags and only
+ reports the base fontname in text extraction outputs
+ "dict" / "json" / "rawdict" / "rawjson".
+ Now a new global parameter can request the old behaviour,
+ `Tools.set_subset_fontnames`.
+ * Pixmap creation now also works with filenames given as pathlib.
+ * Changed `Document.subset_fonts`: Text is not rewritten any more
+ and should therefore retain all its origial properties -- like
+ being hidden or being controlled by Optional Content mechanisms.
+ * `TextWriter.fill_textbox`, `TextWriter.append` now accept a new
+ boolean parameter `right_to_left`, which is *False* by default.
+ * Changed `TextWriter.fill_textbox` to return all lines of text,
+ that did not fit in the given rectangle. Also changed the default
+ of the `warn` parameter to no longer print a warning message
+ in overflow situations.
+ * Added a utility function `recover_quad`, which computes the
+ quadrilateral of a span. This function can be used when
+ quadrilaterals for text extracted with the "dict" or "rawdict"
+ options of `Page.get_text`.
+
+-------------------------------------------------------------------
Old:
----
COPYING
PyMuPDF-1.18.8.tar.gz
New:
----
PyMuPDF-1.18.9.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-PyMuPDF.spec ++++++
--- /var/tmp/diff_new_pack.QZHpyo/_old 2021-03-30 21:08:44.805268112 +0200
+++ /var/tmp/diff_new_pack.QZHpyo/_new 2021-03-30 21:08:44.809268116 +0200
@@ -21,21 +21,20 @@
%define skip_python2 1
%define pypi_name PyMuPDF
Name: python-%{pypi_name}
-Version: 1.18.8
+Version: 1.18.9
Release: 0
Summary: Python binding for MuPDF, a PDF and XPS viewer
-License: GPL-3.0-only AND AGPL-3.0-only
+License: AGPL-3.0-only
Group: Development/Libraries/Python
URL: https://github.com/pymupdf/PyMuPDF
Source: https://files.pythonhosted.org/packages/source/P/PyMuPDF/PyMuPDF-%{version}…
-Source1: https://raw.githubusercontent.com/pymupdf/PyMuPDF/master/COPYING
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: gcc
BuildRequires: jbig2dec-devel
-BuildRequires: mupdf-devel-static >= 1.18.0
BuildRequires: mupdf-devel-static < 1.19.0
+BuildRequires: mupdf-devel-static >= 1.18.0
BuildRequires: openSUSE-release
BuildRequires: pkgconfig
BuildRequires: python-rpm-macros
@@ -57,15 +56,14 @@
%prep
%setup -q -n %{pypi_name}-%{version}
-cp %{SOURCE1} .
%build
export CFLAGS="%{optflags} -I/usr/include/freetype2"
-
%python_build
%install
%python_install
+rm %{buildroot}%{_prefix}/{COPYING,README.md,changes.rst}
%python_expand %fdupes %{buildroot}%{$python_sitearch}
%check
@@ -74,6 +72,7 @@
%files %{python_files}
%license COPYING
+%doc README.md changes.rst
%{python_sitearch}/*
%changelog
++++++ PyMuPDF-1.18.8.tar.gz -> PyMuPDF-1.18.9.tar.gz ++++++
++++ 3963 lines of diff (skipped)
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-single-version for openSUSE:Factory checked in at 2021-03-30 21:08:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-single-version (Old)
and /work/SRC/openSUSE:Factory/.python-single-version.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-single-version"
Tue Mar 30 21:08:02 2021 rev:1 rq:875599 version:1.5.1
Changes:
--------
New Changes file:
--- /dev/null 2021-03-11 01:47:46.020784395 +0100
+++ /work/SRC/openSUSE:Factory/.python-single-version.new.2401/python-single-version.changes 2021-03-30 21:08:04.529223864 +0200
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------
+Tue Feb 16 17:07:48 UTC 2021 - Luigi Baldoni <aloisio(a)gmx.com>
+
+- Initial package (v1.5.1)
New:
----
python-single-version.changes
python-single-version.spec
single-version-1.5.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-single-version.spec ++++++
#
# spec file for package python-single-version
#
# 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/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-single-version
Version: 1.5.1
Release: 0
Summary: Have a single source of version in your code base
License: MIT
URL: https://github.com/hongquan/single-version
Source0: https://pypi.io/packages/source/s/single-version/single-version-%{version}.…
BuildRequires: %{python_module setuptools}
BuildRequires: python-rpm-macros
Requires: python-importlib-metadata
Requires: python-first >= 2.0
BuildArch: noarch
%python_subpackages
%description
Utility to let you have a single source of version in your code base.
%prep
%autosetup -n single-version-%{version}
%build
%python_build
%install
%python_install
%files %{python_files}
%doc README.rst
%license LICENSE
%{python_sitelib}/single_version
%{python_sitelib}/single_version-%{version}-py%{python_version}.egg-info
%changelog
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-kiss-headers for openSUSE:Factory checked in at 2021-03-30 21:07:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-kiss-headers (Old)
and /work/SRC/openSUSE:Factory/.python-kiss-headers.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-kiss-headers"
Tue Mar 30 21:07:49 2021 rev:1 rq:875598 version:2.3.0
Changes:
--------
New Changes file:
--- /dev/null 2021-03-11 01:47:46.020784395 +0100
+++ /work/SRC/openSUSE:Factory/.python-kiss-headers.new.2401/python-kiss-headers.changes 2021-03-30 21:07:52.709210879 +0200
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------
+Wed Feb 17 08:16:28 UTC 2021 - Luigi Baldoni <aloisio(a)gmx.com>
+
+- Initial package (v2.3.0)
New:
----
kiss-headers-2.3.0.tar.gz
python-kiss-headers.changes
python-kiss-headers.spec
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-kiss-headers.spec ++++++
#
# spec file for package python-kiss-headers
#
# 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/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-kiss-headers
Version: 2.3.0
Release: 0
Summary: Python package for HTTP/1.1 style headers. Parse headers to objects
License: MIT
URL: https://www.kiss-headers.tech/
Source0: https://pypi.io/packages/source/k/kiss-headers/kiss-headers-%{version}.tar.…
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
%python_subpackages
%description
Python package for object oriented headers, HTTP/1.1 style. Parser and
serializer for http headers.
%prep
%autosetup -n kiss-headers-%{version}
%build
%python_build
%install
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
# no test files available in the tarball
%files %{python_files}
%doc README.md
%license LICENSE
%{python_sitelib}/kiss_headers
%{python_sitelib}/kiss_headers-%{version}-py%{python_version}.egg-info
%changelog
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package rakudo for openSUSE:Factory checked in at 2021-03-30 21:07:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rakudo (Old)
and /work/SRC/openSUSE:Factory/.rakudo.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rakudo"
Tue Mar 30 21:07:03 2021 rev:65 rq:881722 version:2021.03
Changes:
--------
--- /work/SRC/openSUSE:Factory/rakudo/rakudo.changes 2020-10-23 16:09:42.087773359 +0200
+++ /work/SRC/openSUSE:Factory/.rakudo.new.2401/rakudo.changes 2021-03-30 21:07:14.989169438 +0200
@@ -1,0 +2,64 @@
+Sun Mar 21 21:49:09 CET 2021 - nine(a)detonation.org
+
+- update to version 2021.03
+ + Implement space-delimited command line interface arguments
+ + Add a predicated wait for Lock::ConditionVariable
+ + The Pod::To::Text module's output supports rendering of multi-level lists now
+ + Remove utf32 from encodings lists for MoarVM, it was never supported before
+ + Make printf directive error more descriptive
+ + Make sorting and related infix operators about 2x as fast
+ + Optimize coercive parameter typechecking
+ + Make >>. construct faster
+ + Make BagHash.add a few percent faster
+ + Make xx on a constant value about 5% faster
+ + Fix single item assignment at List creation (my @l is List = 'foo' now produces a correct result)
+ + Kernel.signals no longer returns unwanted extraneous data
+ + Fixed .of method on type objects
+ + Set up proper precedence info for a number of infix operators
+ + Fix hypering on Map and when using next
+ + Fix containerization on hypering
+
+-------------------------------------------------------------------
+Thu Feb 25 08:55:13 CET 2021 - nine(a)detonation.org
+
+- update to version 2021.02.1
+ + Fix a regression of the 2021.02 release where a lazy iterable usage could suddenly
+ lead to a hang
+ + Fix calling list and iterator methods on Map and Array type objects
+ + Fix a minor memory leak in Rakudo runner
+- Remove fix-flapping-tests.diff fixed upstream
+
+-------------------------------------------------------------------
+Sun Feb 21 16:27:19 CET 2021 - nine(a)detonation.org
+
+- update to version 2021.02
+ + Introduce new coertion semantics.
+ + Add new method deterministic to Iterator role
+ + Introduce %*SUB-MAIN-OPTS<coerce-allomorphs-to> setting
+ + Implement MAIN parameter bundling via the %*SUB-MAIN-OPTS<bundling> option
+ + Add a new candidate to spurt routine and method.
+ + Add :emit-on-empty, :emit-timed and :emit-once-on-empty methods to Supply.batch method
+ + Make is DEPRECATED trait introspectable on Routine instances
+ + Implement the prefix:<||> operator in postcircumfixes for 6.e and later
+ + Add a flag to symlink allowing creation of relative symlinks
+ + Implement binding of array- and hash-slices
+ + Give raku -v a pure ASCII version
+ + Introduce is test-assertion trait for routines
+ + Make Whatever slice work on 1-dim native shaped arrays
+ + Handle :exists and :delete on 1-dim native shaped arrays with int index
+ + Introducing the Allomorph class
+ + Add cmp candidates for Code
+ + Add parameterizer methods for Metamodel::Primitives
+ + Set equality operators: (==) Unicode ��� and ���
+ + Add support for Supply.tail(*), Supply.tail(*-3) and .tail(Inf)
+ + Make Supply.head(*-3) consistent with List.head(*-3)
+ + Add IO::Path::Parts class
+ + Add support for printf($format, Junction)
+ + Add IO::Handle.do-not-close-automatically, Supply.rotate and Capture.EXISTS-POS methods
+ + Add RAKU_REPL_OUTPUT_METHOD environment variable
+ + Add :chomp named argument to Str.lines similar to the same named argument of IO::Handle.new
+ + Lots and lots of bug fixes and speedups
+- Backport fix-flapping-tests.diff
+- Get output of failing tests via rakudo-test-log.diff
+
+-------------------------------------------------------------------
Old:
----
rakudo-2020.05.1.tar.gz
New:
----
rakudo-2021.03.tar.gz
rakudo-test-log.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rakudo.spec ++++++
--- /var/tmp/diff_new_pack.tITcpg/_old 2021-03-30 21:07:15.717170238 +0200
+++ /var/tmp/diff_new_pack.tITcpg/_new 2021-03-30 21:07:15.717170238 +0200
@@ -1,7 +1,7 @@
#
# spec file for package rakudo
#
-# 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
@@ -17,19 +17,21 @@
Name: rakudo
-Version: 2020.05.1
+Version: 2021.03
Release: 2.1
Summary: Raku (formerly Perl 6) implemenation that runs on MoarVM
License: Artistic-2.0
Group: Development/Languages/Other
URL: http://rakudo.org/
Source0: rakudo-%{version}.tar.gz
+Patch0: rakudo-test-log.diff
BuildRequires: fdupes
-BuildRequires: moarvm-devel >= 2020.05
-BuildRequires: nqp >= 2020.05
+BuildRequires: moarvm-devel >= 2021.03
+BuildRequires: nqp >= 2021.03
+BuildRequires: perl(YAML::Tiny)
Provides: perl6 = %{version}-%{release}
-Requires: moarvm >= 2020.05
-Requires: nqp >= 2020.05
+Requires: moarvm >= 2021.03
+Requires: nqp >= 2021.03
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@@ -38,10 +40,11 @@
%prep
%setup -q
+%patch0 -p1
%build
perl Configure.pl --prefix="%{_prefix}"
-make
+VERBOSE_BUILD=1 make
%check
rm t/08-performance/99-misc.t
++++++ rakudo-2020.05.1.tar.gz -> rakudo-2021.03.tar.gz ++++++
++++ 269911 lines of diff (skipped)
++++++ rakudo-test-log.diff ++++++
diff --git a/tools/templates/Makefile-backend-common.in b/tools/templates/Makefile-backend-common.in
index 57396c6df..0688cbe59 100644
--- a/tools/templates/Makefile-backend-common.in
+++ b/tools/templates/Makefile-backend-common.in
@@ -126,7 +126,7 @@
@backend_prefix@-stresstest: @backend_prefix@-stresstest@bpm(HARNESS_TYPE)@
@backend_prefix@-coretest5: @backend_prefix@-all
- @bpm(HARNESS5)@ $(COMMON_TEST_DIRS) @bsm(SPECIFIC_TEST_DIRS)@
+ PERL5LIB=lib5 @bpm(HARNESS5)@ --archive=make-test.tar $(COMMON_TEST_DIRS) @bsm(SPECIFIC_TEST_DIRS)@ || { mkdir results && cd results && tar xf ../make-test.tar && find . -type f -exec echo '{}' \; -exec cat '{}' \; ; false ; }
# Run the spectests that we know work.
@backend_prefix@-spectest5: @backend_prefix@-testable $(SPECTEST_DATA)
diff --git a/lib5/TAP/Harness/Archive.pm b/lib5/TAP/Harness/Archive.pm
new file mode 100644
index 000000000..23810ba2d
--- /dev/null
+++ b/lib5/TAP/Harness/Archive.pm
@@ -0,0 +1,450 @@
+package TAP::Harness::Archive;
+use warnings;
+use strict;
+use base 'TAP::Harness';
+use Cwd ();
+use File::Basename ();
+use File::Temp ();
+use File::Spec ();
+use File::Path ();
+use File::Find ();
+use Archive::Tar ();
+use TAP::Parser ();
+use YAML::Tiny ();
+use TAP::Parser::Aggregator ();
+
+=head1 NAME
+
+TAP::Harness::Archive - Create an archive of TAP test results
+
+=cut
+
+our $VERSION = '0.18';
+
+=head1 SYNOPSIS
+
+ use TAP::Harness::Archive;
+ my $harness = TAP::Harness::Archive->new(\%args);
+ $harness->runtests(@tests);
+
+=head1 DESCRIPTION
+
+This module is a direct subclass of L<TAP::Harness> and behaves
+in exactly the same way except for one detail. In addition to
+outputting a running progress of the tests and an ending summary
+it can also capture all of the raw TAP from the individual test
+files or streams into an archive file (C<.tar> or C<.tar.gz>).
+
+=head1 METHODS
+
+All methods are exactly the same as our base L<TAP::Harness> except
+for the following.
+
+=head2 new
+
+In addition to the options that L<TAP::Harness> allow to this method,
+we also allow the following:
+
+=over
+
+=item archive
+
+This is the name of the archive file to generate. We use L<Archive::Tar>
+in the background so we only support C<.tar> and C<.tar.gz> archive file
+formats. This can optionally be an existing directory that will have
+the TAP archive's contents deposited therein without any file archiving
+(no L<Archive::Tar> involved).
+
+=item extra_files
+
+This is an array reference to extra files that you want to include in the TAP
+archive but which are not TAP files themselves. This is useful if you want to
+include some log files that contain useful information about the test run.
+
+=item extra_properties
+
+This is a hash reference of extra properties that you've collected during your
+test run. Some things you might want to include are the Perl version, the system's
+architecture, the operating system, etc.
+
+=back
+
+=cut
+
+my (%ARCHIVE_TYPES, @ARCHIVE_EXTENSIONS);
+BEGIN {
+ %ARCHIVE_TYPES = (
+ 'tar' => 'tar',
+ 'tar.gz' => 'tar.gz',
+ 'tgz' => 'tar.gz',
+ );
+ @ARCHIVE_EXTENSIONS = map { ".$_" } keys %ARCHIVE_TYPES;
+}
+
+sub new {
+ my ($class, $args) = @_;
+ $args ||= {};
+
+ # these can't be passed on to Test::Harness
+ my $archive = delete $args->{archive};
+ my $extra_files = delete $args->{extra_files};
+ my $extra_props = delete $args->{extra_properties};
+
+ $class->_croak("You must provide the name of the archive to create!")
+ unless $archive;
+
+ my $self = $class->SUPER::new($args);
+
+ my $is_directory = -d $archive ? 1 : 0;
+ if ($is_directory) {
+ $self->{__archive_is_directory} = $is_directory;
+ $self->{__archive_tempdir} = $archive;
+ } else {
+ my $format = $class->_get_archive_format_from_filename($archive);
+
+ # if it's not a format we understand, or it's not a directory
+ $class->_croak("Archive is not a known format type!")
+ unless $format && $ARCHIVE_TYPES{$format};
+
+ $self->{__archive_file} = $archive;
+ $self->{__archive_format} = $format;
+ $self->{__archive_tempdir} = File::Temp::tempdir();
+ }
+
+ # handle any extra files
+ if($extra_files) {
+ ref $extra_files eq 'ARRAY'
+ or $class->_croak("extra_files must be an array reference!");
+ foreach my $file (@$extra_files) {
+ $class->_croak("extra_file $file does not exist!") unless -e $file;
+ $class->_croak("extra_file $file is not readable!") unless -r $file;
+ }
+ $self->{__archive_extra_files} = $extra_files;
+ }
+
+ if($extra_props) {
+ ref $extra_props eq 'HASH'
+ or $class->_croak("extra_properties must be a hash reference!");
+ $self->{__archive_extra_props} = $extra_props;
+ }
+
+ return $self;
+}
+
+sub _get_archive_format_from_filename {
+ my ($self, $filename) = @_;
+
+ # try to guess it if we don't have one
+ my (undef, undef, $suffix) = File::Basename::fileparse($filename, @ARCHIVE_EXTENSIONS);
+ $suffix =~ s/^\.//;
+ return $ARCHIVE_TYPES{$suffix};
+}
+
+=head2 runtests
+
+Takes the same arguments as L<TAP::Harness>'s version and returns the
+same thing (a L<TAP::Parser::Aggregator> object). The only difference
+is that in addition to the normal test running and progress output
+we also create the TAP Archive when it's all done.
+
+=cut
+
+sub runtests {
+ my ($self, @files) = @_;
+
+ # tell TAP::Harness to put the raw tap someplace we can find it later
+ my $dir = $self->{__archive_tempdir};
+ $ENV{PERL_TEST_HARNESS_DUMP_TAP} = $dir;
+
+ # get some meta information about this run
+ my %meta = (
+ file_order => \@files,
+ start_time => time(),
+ );
+
+ my $aggregator = $self->SUPER::runtests(@files);
+
+ $meta{stop_time} = time();
+
+ my @parsers = $aggregator->parsers;
+ for ( my $i = 0; $i < @parsers; $i++ ) {
+ $parsers[ $i ] = {
+ start_time => $parsers[ $i ]->start_time,
+ end_time => $parsers[ $i ]->end_time,
+ description => $files[ $i ],
+ };
+ }
+ $meta{file_attributes} = \@parsers;
+
+ my $cwd = Cwd::getcwd();
+ my $is_dir = $self->{__archive_is_directory};
+ my ($archive, $output_file);
+ if( $is_dir ) {
+ $output_file = $self->{__archive_tempdir};
+ } else {
+ $output_file = $self->{__archive_file};
+
+ # go into the dir so that we can reference files
+ # relatively and put them in the archive that way
+ chdir($dir) or $self->_croak("Could not change to directory $dir: $!");
+
+ unless (File::Spec->file_name_is_absolute($output_file)) {
+ $output_file = File::Spec->catfile($cwd, $output_file);
+ }
+
+ # create the archive
+ $archive = Archive::Tar->new();
+ $archive->add_files($self->_get_all_tap_files);
+ chdir($cwd) or $self->_croak("Could not return to directory $cwd: $!");
+ }
+
+ # add in any extra files
+ if(my $x_files = $self->{__archive_extra_files}) {
+ my @rel_x_files;
+ foreach my $x_file (@$x_files) {
+ # handle both relative and absolute file names
+ my $rel_file;
+ if( File::Spec->file_name_is_absolute($x_file) ) {
+ $rel_file = File::Spec->abs2rel($x_file, $cwd);
+ } else {
+ $rel_file = $x_file;
+ }
+ push(@rel_x_files, $rel_file);
+ }
+ $archive->add_files(@rel_x_files) unless $is_dir;
+ $meta{extra_files} = \@rel_x_files;
+ }
+
+ # add any extra_properties to the meta
+ if(my $extra_props = $self->{__archive_extra_props}) {
+ $meta{extra_properties} = $extra_props;
+ }
+
+ # create the YAML meta file
+ my $yaml = YAML::Tiny->new();
+ $yaml->[0] = \%meta;
+ if( $is_dir ) {
+ my $meta_file = File::Spec->catfile($output_file, 'meta.yml');
+ open(my $out, '>', $meta_file) or die "Could not create meta.yml: $!";
+ print $out $yaml->write_string;
+ close($out);
+ } else {
+ $archive->add_data('meta.yml', $yaml->write_string);
+ $archive->write($output_file, $self->{__archive_format} eq 'tar.gz') or die $archive->error;
+ # be nice and clean up
+ File::Path::rmtree($dir);
+ }
+
+ print "\nTAP Archive created at $output_file\n" unless $self->verbosity < -1;
+
+ return $aggregator;
+}
+
+sub _get_all_tap_files {
+ my ($self, $dir, $meta) = @_;
+ $dir ||= $self->{__archive_tempdir};
+ my @files;
+ my %x_files;
+ if($meta && $meta->{extra_files}) {
+ %x_files = map { $_ => 1 } @{$meta->{extra_files}};
+ }
+
+ File::Find::find(
+ {
+ no_chdir => 1,
+ wanted => sub {
+ return if /^\./;
+ return if -d;
+ my $rel_name = File::Spec->abs2rel($_, $dir);
+ return if $rel_name eq 'meta.yml';
+ push(@files, $rel_name) unless $x_files{$rel_name};
+ },
+ },
+ $dir
+ );
+ return @files;
+}
+
+=head2 aggregator_from_archive
+
+This class method will return a L<TAP::Parser::Aggregator> object
+when given a TAP Archive to open and parse. It's pretty much the reverse
+of creating a TAP Archive from using C<new> and C<runtests>.
+
+It takes a hash of arguments which are as follows:
+
+=over
+
+=item archive
+
+The path to the archive file. This can also be a directory if you created
+the archive as a directory. This is required.
+
+=item parser_callbacks
+
+This is a hash ref containing callbacks for the L<TAP::Parser> objects
+that are created while parsing the TAP files. See the L<TAP::Parser>
+documentation for details about these callbacks.
+
+=item made_parser_callback
+
+This callback is executed every time a new L<TAP::Parser> object
+is created. It will be passed the new parser object, the name
+of the file to be parsed, and also the full (temporary) path of that file.
+
+=item meta_yaml_callback
+
+This is a subroutine that will be called if we find and parse a YAML
+file containing meta information about the test run in the archive.
+The structure of the YAML file will be passed in as an argument.
+
+=back
+
+ my $aggregator = TAP::Harness::Archive->aggregator_from_archive(
+ {
+ archive => 'my_tests.tar.gz',
+ parser_callbacks => {
+ plan => sub { warn "Nice to see you plan ahead..." },
+ unknown => sub { warn "Your TAP is bad!" },
+ },
+ made_parser_callback => sub {
+ my ($parser, $file, $full_path) = @_;
+ warn "$file is temporarily located at $full_path\n";
+ }
+
+ }
+ );
+
+=cut
+
+sub aggregator_from_archive {
+ my ($class, $args) = @_;
+ my $meta;
+
+ my $file = Cwd::abs_path( $args->{archive} )
+ or $class->_croak("You must provide the path to the archive!");
+
+ my $is_directory = -d $file;
+
+ # extract the files out into a temporary directory
+ my $dir = $is_directory ? $file : File::Temp::tempdir();
+ my $cwd = Cwd::getcwd();
+ chdir($dir) or $class->_croak("Could not change to directory $dir: $!");
+ my @files;
+
+ Archive::Tar->new()->extract_archive($file) unless $is_directory;
+ my @tap_files;
+
+ # do we have a meta.yml file in the archive?
+ my $yaml_file = File::Spec->catfile($dir, 'meta.yml');
+ if( -e $yaml_file) {
+
+ # parse it into a structure
+ if ($YAML::Tiny::VERSION < 1.57) {
+ $meta = YAML::Tiny->new()->read($yaml_file);
+ die "Could not read YAML $yaml_file: " . YAML::Tiny->errstr if YAML::Tiny->errstr;
+ } else {
+ $meta = eval {
+ YAML::Tiny->new()->read($yaml_file);
+ };
+ if ($@) {
+ die "Could not read YAML $yaml_file: ".$@;
+ }
+ }
+
+ if($args->{meta_yaml_callback}) {
+ $args->{meta_yaml_callback}->($meta);
+ }
+ $meta = $meta->[0];
+
+ if($meta->{file_order} && ref $meta->{file_order} eq 'ARRAY') {
+ foreach my $file (@{$meta->{file_order}}) {
+ push(@tap_files, $file) if -e $file;
+ }
+ }
+ }
+
+ # if we didn't get the files from the YAML file, just find them all
+ unless(@tap_files) {
+ @tap_files = $class->_get_all_tap_files($dir, $meta);
+ }
+
+ # now create the aggregator
+ my $aggregator = TAP::Parser::Aggregator->new();
+ foreach my $tap_file (@tap_files) {
+ open(my $fh, $tap_file) or die "Could not open $tap_file for reading: $!";
+ my $parser = TAP::Parser->new({source => $fh, callbacks => $args->{parser_callbacks}});
+ if($args->{made_parser_callback}) {
+ $args->{made_parser_callback}->($parser, $tap_file, File::Spec->catfile($dir, $tap_file));
+ }
+ $parser->run;
+ $aggregator->add($tap_file, $parser);
+ }
+
+ # be nice and clean up
+ chdir($cwd) or $class->_croak("Could not return to directory $cwd: $!");
+ File::Path::rmtree($dir) unless $is_directory;
+
+ return $aggregator;
+}
+
+=head1 AUTHOR
+
+Michael Peters, C<< <mpeters at plusthree.com> >>
+
+=head1 BUGS
+
+Please report any bugs or feature requests to
+C<bug-tap-harness-archive at rt.cpan.org>, or through the web interface at
+L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=TAP-Harness-Archive>.
+I will be notified, and then you'll automatically be notified of progress on
+your bug as I make changes.
+
+=head1 SUPPORT
+
+You can find documentation for this module with the perldoc command.
+
+ perldoc TAP::Harness::Archive
+
+You can also look for information at:
+
+=over 4
+
+=item * AnnoCPAN: Annotated CPAN documentation
+
+L<http://annocpan.org/dist/TAP-Harness-Archive>
+
+=item * CPAN Ratings
+
+L<http://cpanratings.perl.org/d/TAP-Harness-Archive>
+
+=item * RT: CPAN's request tracker
+
+L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=TAP-Harness-Archive>
+
+=item * Search CPAN
+
+L<http://search.cpan.org/dist/TAP-Harness-Archive>
+
+=back
+
+=head1 ACKNOWLEDGEMENTS
+
+=over
+
+=item * A big thanks to Plus Three, LP (L<http://www.plusthree.com>) for sponsoring my work on this module and other open source pursuits.
+
+=item * Andy Armstrong
+
+=back
+
+=head1 COPYRIGHT & LICENSE
+
+Copyright 2007 Michael Peters, all rights reserved.
+
+This program is free software; you can redistribute it and/or modify it
+under the same terms as Perl itself.
+
+=cut
+
+1; # End of TAP::Harness::Archive
Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-traitsui for openSUSE:Factory checked in at 2021-03-30 21:06:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-traitsui (Old)
and /work/SRC/openSUSE:Factory/.python-traitsui.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-traitsui"
Tue Mar 30 21:06:53 2021 rev:7 rq:874882 version:7.1.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-traitsui/python-traitsui.changes 2020-09-08 22:50:37.991612920 +0200
+++ /work/SRC/openSUSE:Factory/.python-traitsui.new.2401/python-traitsui.changes 2021-03-30 21:07:07.281160970 +0200
@@ -1,0 +2,48 @@
+Tue Feb 23 19:50:25 UTC 2021 - Ben Greiner <code(a)bnavigator.de>
+
+- Update to 7.1.1
+ * Fix scrollable trait of a Group not being implemented on Qt
+ (#1406)
+ * Fix icon button's clickable area too small for FileEditor and
+ RangeEditor on Qt and OSX (#1383)
+ * Fix missing minimize and maximize buttons for dialogs opened
+ on certain Linux platforms (#1409)
+- Release 7.1.0
+ Highlights of this release
+ * A new traitsui.testing.api module has been introduced for
+ testing GUI applications built using TraitsUI. See Testing
+ TraitsUI Applications for an introduction. Builtin support has
+ been added for testing several TraitsUI editors. More support
+ will be added in the future.
+ * On OSX and Qt, there have been reports of missing UI view
+ updates after a push button is clicked. While this is
+ suspected to be a Qt issue, changes have been made to
+ ButtonEditor, SetEditor and ImageEnumEditor to mitigate the
+ situation.
+ * The internal logic for disposing an instance traitsui.ui.UI is
+ changed as an attempt to resolve AttributeError that occurs
+ while a nested UI is removed.
+ Notes on upgrading
+ * On the issue about Qt button not causing views to update on
+ OSX, projects that have been working around the issue by
+ adding GUI().process_events() (or similar) in their
+ applications may now try to remove those workarounds. However,
+ the change that mitigates the issue in a production
+ environment has implications for tests: The button's click
+ slot is no longer invoked immediately but always invoked by
+ the Qt GUI event loop. Tests that used to call the Qt button
+ click method directly and rely on the event to happen
+ immediately will now need to update their tests to ensure that
+ the click slot is processed by the Qt GUI event loop in the
+ same order as before. Consider using the new testing library
+ which automatically runs the GUI event loop after each
+ interaction (e.g. mouse click).
+ Future removals
+ * traitsui.image has been moved to pyface.image more than 3
+ years ago and has since been deprecated. Previously it was
+ scheduled to be removed in TraitsUI 6.0. This planned removal
+ is now deferred to TraitsUI 7.2.
+- use pytest-xvfb
+- Don't test numpy on python36
+
+-------------------------------------------------------------------
Old:
----
traitsui-7.0.1.tar.gz
New:
----
traitsui-7.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-traitsui.spec ++++++
--- /var/tmp/diff_new_pack.3qDS39/_old 2021-03-30 21:07:08.165161942 +0200
+++ /var/tmp/diff_new_pack.3qDS39/_new 2021-03-30 21:07:08.169161946 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-traitsui
#
-# 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
@@ -17,10 +17,9 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%define X_display ":98"
%define skip_python2 1
Name: python-traitsui
-Version: 7.0.1
+Version: 7.1.1
Release: 0
Summary: Traits-capable windowing framework
# Source code is under BSD but images are under different licenses
@@ -30,13 +29,12 @@
URL: https://github.com/enthought/traitsui
Source: https://files.pythonhosted.org/packages/source/t/traitsui/traitsui-%{versio…
BuildRequires: %{python_module configobj}
-BuildRequires: %{python_module numpy}
-BuildRequires: %{python_module pyface >= 6.0.0}
+BuildRequires: %{python_module pyface >= 7.1.0}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module traits >= 6}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
-Requires: python-pyface >= 6.0.0
+Requires: python-pyface >= 7.1.0
Requires: python-traits >= 6
Recommends: python-configobj
Recommends: python-qt5
@@ -44,11 +42,12 @@
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module Pygments}
+BuildRequires: %{python_module pytest-xvfb}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module qt5}
BuildRequires: %{python_module wxPython >= 4}
BuildRequires: Mesa-dri
-BuildRequires: xorg-x11-server
+BuildRequires: %{python_module numpy if (%python-base without python36-base)}
# /SECTION
%python_subpackages
@@ -69,31 +68,20 @@
%install
%python_install
-%{python_expand %fdupes %{buildroot}%{$python_sitelib}
-$python -m compileall -d %{$python_sitelib} %{buildroot}%{$python_sitelib}/traitsui/wx/extra/
-$python -O -m compileall -d %{$python_sitelib} %{buildroot}%{$python_sitelib}/traitsui/wx/extra/
-$python -m compileall -d %{$python_sitelib} %{buildroot}%{$python_sitelib}/traitsui/wx/extra/windows/
-$python -O -m compileall -d %{$python_sitelib} %{buildroot}%{$python_sitelib}/traitsui/wx/extra/windows/
-%fdupes %{buildroot}%{$python_sitelib}
-}
+%python_expand %fdupes %{buildroot}%{$python_sitelib}
+ln -sf examples/tutorials/doc_exmaples/default.css examples/tutorials/traitsui_4.0/default.css
%check
export LANG=en_US.UTF-8
-export DISPLAY=%{X_display}
-Xvfb %{X_display} >& Xvfb.log &
-trap "kill $! || true" EXIT
-sleep 10
-
-%{python_expand mkdir tester_%{$python_bin_suffix}
-pushd tester_%{$python_bin_suffix}
-export PYTHONPATH=%{buildroot}%{$python_sitelib}
-pytest-%{$python_bin_suffix} -v ../traitsui/tests -k 'not (wx or test_splitter_prefs_are_restored)'
-popd
-}
+# different splitters?
+donttest="test_splitter_prefs_are_restored"
+# segfault
+donttest+=" or test_html_editor"
+%pytest traitsui/tests -k "not ($donttest)"
%files %{python_files}
-%doc CHANGES.txt README.rst TODO.txt
-%doc docs/README.rst docs/traits*.*
+%doc README.rst
+%doc docs/traits*.*
%doc examples/
%license LICENSE.txt image_LICENSE*.txt
%{python_sitelib}/traitsui/
++++++ traitsui-7.0.1.tar.gz -> traitsui-7.1.1.tar.gz ++++++
++++ 45335 lines of diff (skipped)