Hello community, here is the log from the commit of package perl-Algorithm-C3 for openSUSE:Factory checked in at 2014-03-09 18:33:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Algorithm-C3 (Old) and /work/SRC/openSUSE:Factory/.perl-Algorithm-C3.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Algorithm-C3" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Algorithm-C3/perl-Algorithm-C3.changes 2011-11-17 11:04:59.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.perl-Algorithm-C3.new/perl-Algorithm-C3.changes 2014-03-09 18:33:43.000000000 +0100 @@ -1,0 +2,8 @@ +Fri Mar 7 06:48:31 UTC 2014 - [email protected] + +- updated to 0.09 + - convert to use ExtUtils::MakeMaker using distar + - include repo and bugtracker metadata +- regenerate spec file + +------------------------------------------------------------------- Old: ---- Algorithm-C3-0.08.tar.gz New: ---- Algorithm-C3-0.09.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Algorithm-C3.spec ++++++ --- /var/tmp/diff_new_pack.StbIpa/_old 2014-03-09 18:33:44.000000000 +0100 +++ /var/tmp/diff_new_pack.StbIpa/_new 2014-03-09 18:33:44.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package perl-Algorithm-C3 # -# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,33 +15,21 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # -# norootforbuild - -%bcond_with pod Name: perl-Algorithm-C3 +Version: 0.09 +Release: 0 %define cpan_name Algorithm-C3 -Summary: Module for merging hierarchies using the C3 algorithm -Version: 0.08 -Release: 2 -License: GPL-1.0+ or Artistic-1.0 +Summary: A module for merging hierarchies using the C3 algorithm +License: Artistic-1.0 or GPL-1.0+ Group: Development/Libraries/Perl Url: http://search.cpan.org/dist/Algorithm-C3/ -Source: http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/Algorithm-C3-0.08.tar.gz +Source: http://www.cpan.org/authors/id/H/HA/HAARG/%{cpan_name}-%{version}.tar.gz BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-build -%{perl_requires} BuildRequires: perl -BuildRequires: perl(Module::Build) BuildRequires: perl-macros -%if %{with pod} -BuildRequires: perl(Test::Pod) >= 1.14 -BuildRequires: perl(Test::Pod::Coverage) >= 1.04 -%endif -BuildRequires: perl(Test::More) >= 0.47 -# -BuildRequires: perl(Carp) >= 0.01 -Requires: perl(Carp) >= 0.01 +%{perl_requires} %description This module implements the C3 algorithm. I have broken this out into it's @@ -49,32 +37,29 @@ various needs. Most of the uses I have for C3 revolve around class building and metamodels, but it could also be used for things like dependency resolution as well since it tends to do such a nice job of preserving local -precendence orderings. +precedence orderings. -Authors: --------- - Stevan Little, <[email protected]> - Brandon L. Black, <[email protected]> +Below is a brief explanation of C3 taken from the the Class::C3 manpage +module. For more detailed information, see the the SEE ALSO manpage section +and the links there. %prep %setup -q -n %{cpan_name}-%{version} %build -%{__perl} Build.PL installdirs=vendor -./Build build flags=%{?_smp_mflags} +%{__perl} Makefile.PL INSTALLDIRS=vendor +%{__make} %{?_smp_mflags} %check -./Build test +%{__make} test %install -./Build install destdir=$RPM_BUILD_ROOT create_packlist=0 +%perl_make_install +%perl_process_packlist %perl_gen_filelist -%clean -%{__rm} -rf $RPM_BUILD_ROOT - %files -f %{name}.files -%defattr(-,root,root,-) +%defattr(-,root,root,755) %doc Changes README %changelog ++++++ Algorithm-C3-0.08.tar.gz -> Algorithm-C3-0.09.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/Build.PL new/Algorithm-C3-0.09/Build.PL --- old/Algorithm-C3-0.08/Build.PL 2009-05-28 00:50:20.000000000 +0200 +++ new/Algorithm-C3-0.09/Build.PL 1970-01-01 01:00:00.000000000 +0100 @@ -1,22 +0,0 @@ -use Module::Build; - -use strict; - -my $build = Module::Build->new( - module_name => 'Algorithm::C3', - license => 'perl', - requires => { - 'Carp' => '0.01', - }, - optional => {}, - build_requires => { - 'Test::More' => '0.47', - }, - recursive_test_files => 1, - add_to_cleanup => [ - 'META.yml', '*.bak', '*.gz', 'Makefile.PL', - ], -); - -$build->create_build_script; - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/Changes new/Algorithm-C3-0.09/Changes --- old/Algorithm-C3-0.08/Changes 2009-05-28 00:50:20.000000000 +0200 +++ new/Algorithm-C3-0.09/Changes 2014-03-02 00:02:57.000000000 +0100 @@ -1,5 +1,9 @@ Revision history for Perl extension Algorithm-C3. +0.09 - 2014-03-01 + - convert to use ExtUtils::MakeMaker using distar + - include repo and bugtracker metadata + 0.08 Thu. May 28, 2009 - Fix a couple of doc typos. - Don't create a fake Makefile.PL. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/MANIFEST new/Algorithm-C3-0.09/MANIFEST --- old/Algorithm-C3-0.08/MANIFEST 2009-05-28 00:50:20.000000000 +0200 +++ new/Algorithm-C3-0.09/MANIFEST 2014-03-02 00:03:08.000000000 +0100 @@ -1,8 +1,8 @@ -Build.PL Changes lib/Algorithm/C3.pm +maint/Makefile.PL.include +Makefile.PL MANIFEST This list of files -README t/000_load.t t/001_merge.t t/002_merge.t @@ -15,6 +15,8 @@ t/009_dbic_merge.t t/010_complex_merge_classless.t t/011_infinite_loop.t -t/pod.t -t/pod_coverage.t -META.yml +xt/pod.t +xt/pod_coverage.t +META.yml Module YAML meta-data (added by MakeMaker) +META.json Module JSON meta-data (added by MakeMaker) +README README file (added by Distar) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/META.json new/Algorithm-C3-0.09/META.json --- old/Algorithm-C3-0.08/META.json 1970-01-01 01:00:00.000000000 +0100 +++ new/Algorithm-C3-0.09/META.json 2014-03-02 00:03:08.000000000 +0100 @@ -0,0 +1,53 @@ +{ + "abstract" : "A module for merging hierarchies using the C3 algorithm", + "author" : [ + "Stevan Little <[email protected]>", + "Brandon L. Black <[email protected]>" + ], + "dynamic_config" : 1, + "generated_by" : "ExtUtils::MakeMaker version 6.88, CPAN::Meta::Converter version 2.133380", + "license" : [ + "perl_5" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Algorithm-C3", + "no_index" : { + "directory" : [ + "t", + "inc" + ] + }, + "prereqs" : { + "build" : { + "requires" : { + "Test::More" : "0.47" + } + }, + "configure" : { + "requires" : { + "ExtUtils::MakeMaker" : "0" + } + }, + "runtime" : { + "requires" : { + "Carp" : "0.01" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "mailto" : "[email protected]", + "web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=Algorithm-C3" + }, + "repository" : { + "type" : "git", + "url" : "git://git.shadowcat.co.uk/gitmo/Algorithm-C3.git", + "web" : "http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo/Algorithm-C3.git" + } + }, + "version" : "0.09" +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/META.yml new/Algorithm-C3-0.09/META.yml --- old/Algorithm-C3-0.08/META.yml 2009-05-28 00:50:20.000000000 +0200 +++ new/Algorithm-C3-0.09/META.yml 2014-03-02 00:03:08.000000000 +0100 @@ -1,22 +1,26 @@ --- -name: Algorithm-C3 -version: 0.08 +abstract: 'A module for merging hierarchies using the C3 algorithm' author: - - 'Stevan Little, E<lt>[email protected]<gt>' - - 'Brandon L. Black, E<lt>[email protected]<gt>' -abstract: A module for merging hierarchies using the C3 algorithm -license: perl -resources: - license: http://dev.perl.org/licenses/ -requires: - Carp: 0.01 + - 'Stevan Little <[email protected]>' + - 'Brandon L. Black <[email protected]>' build_requires: - Test::More: 0.47 -provides: - Algorithm::C3: - file: lib/Algorithm/C3.pm - version: 0.08 -generated_by: Module::Build version 0.33 + Test::More: '0.47' +configure_requires: + ExtUtils::MakeMaker: '0' +dynamic_config: 1 +generated_by: 'ExtUtils::MakeMaker version 6.88, CPAN::Meta::Converter version 2.133380' +license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: 1.4 + version: '1.4' +name: Algorithm-C3 +no_index: + directory: + - t + - inc +requires: + Carp: '0.01' +resources: + bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Algorithm-C3 + repository: git://git.shadowcat.co.uk/gitmo/Algorithm-C3.git +version: '0.09' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/Makefile.PL new/Algorithm-C3-0.09/Makefile.PL --- old/Algorithm-C3-0.08/Makefile.PL 1970-01-01 01:00:00.000000000 +0100 +++ new/Algorithm-C3-0.09/Makefile.PL 2014-03-02 00:01:25.000000000 +0100 @@ -0,0 +1,40 @@ +use strict; +use warnings FATAL => 'all'; +use 5.006; +use ExtUtils::MakeMaker; +(do 'maint/Makefile.PL.include' or die $@) unless -f 'META.yml'; + +my %BUILD_DEPS = ( + 'Test::More' => 0.47, +); + +# have to do this since old EUMM dev releases miss the eval $VERSION line +my $mymeta = eval($ExtUtils::MakeMaker::VERSION) >= 6.57_02; +my $mymeta_works = eval($ExtUtils::MakeMaker::VERSION) >= 6.57_07; + +WriteMakefile( + NAME => 'Algorithm::C3', + VERSION_FROM => 'lib/Algorithm/C3.pm', + PREREQ_PM => { + 'Carp' => 0.01, + ($mymeta_works ? () : (%BUILD_DEPS)), + }, + $mymeta_works ? (BUILD_REQUIRES => \%BUILD_DEPS) : (), + ($mymeta && !$mymeta_works ? (NO_MYMETA => 1) : ()), + + -f 'META.yml' ? () : (META_MERGE => { + 'meta-spec' => { version => 2 }, + resources => { + # r/w: [email protected]:Algorithm-C3.git + repository => { + url => 'git://git.shadowcat.co.uk/gitmo/Algorithm-C3.git', + web => 'http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo/Algorithm-C3.git', + type => 'git', + }, + bugtracker => { + mailto => '[email protected]', + web => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Algorithm-C3', + }, + }, + }), +); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/README new/Algorithm-C3-0.09/README --- old/Algorithm-C3-0.08/README 2009-05-28 00:50:20.000000000 +0200 +++ new/Algorithm-C3-0.09/README 2014-03-02 00:03:08.000000000 +0100 @@ -1,29 +1,159 @@ -Algorithm::C3 version 0.08 -=========================== +NAME + Algorithm::C3 - A module for merging hierarchies using the C3 algorithm -See the individual module documentation for more information +SYNOPSIS + use Algorithm::C3; -INSTALLATION + # merging a classic diamond + # inheritance graph like this: + # + # <A> + # / \ + # <B> <C> + # \ / + # <D> + + my @merged = Algorithm::C3::merge( + 'D', + sub { + # extract the ISA array + # from the package + no strict 'refs'; + @{$_[0] . '::ISA'}; + } + ); + + print join ", " => @merged; # prints D, B, C, A + +DESCRIPTION + This module implements the C3 algorithm. I have broken this out into + it's own module because I found myself copying and pasting it way too + often for various needs. Most of the uses I have for C3 revolve around + class building and metamodels, but it could also be used for things like + dependency resolution as well since it tends to do such a nice job of + preserving local precedence orderings. + + Below is a brief explanation of C3 taken from the Class::C3 module. For + more detailed information, see the "SEE ALSO" section and the links + there. + + What is C3? + C3 is the name of an algorithm which aims to provide a sane method + resolution order under multiple inheritance. It was first introduced in + the language Dylan (see links in the "SEE ALSO" section), and then later + adopted as the preferred MRO (Method Resolution Order) for the new-style + classes in Python 2.3. Most recently it has been adopted as the + 'canonical' MRO for Perl 6 classes, and the default MRO for Parrot + objects as well. + + How does C3 work. + C3 works by always preserving local precedence ordering. This + essentially means that no class will appear before any of it's + subclasses. Take the classic diamond inheritance pattern for instance: + + <A> + / \ + <B> <C> + \ / + <D> + + The standard Perl 5 MRO would be (D, B, A, C). The result being that A + appears before C, even though C is the subclass of A. The C3 MRO + algorithm however, produces the following MRO (D, B, C, A), which does + not have this same issue. + + This example is fairly trivial, for more complex examples and a deeper + explanation, see the links in the "SEE ALSO" section. + +FUNCTION + merge ($root, $func_to_fetch_parent, $cache) + This takes a $root node, which can be anything really it is up to + you. Then it takes a $func_to_fetch_parent which can be either a + CODE reference (see SYNOPSIS above for an example), or a string + containing a method name to be called on all the items being + linearized. An example of how this might look is below: + + { + package A; + + sub supers { + no strict 'refs'; + @{$_[0] . '::ISA'}; + } + + package C; + our @ISA = ('A'); + package B; + our @ISA = ('A'); + package D; + our @ISA = ('B', 'C'); + } + + print join ", " => Algorithm::C3::merge('D', 'supers'); + + The purpose of $func_to_fetch_parent is to provide a way for "merge" + to extract the parents of $root. This is needed for C3 to be able to + do it's work. + + The $cache parameter is an entirely optional performance measure, + and should not change behavior. + + If supplied, it should be a hashref that merge can use as a private + cache between runs to speed things up. Generally speaking, if you + will be calling merge many times on related things, and the parent + fetching function will return constant results given the same + arguments during all of these calls, you can and should reuse the + same shared cache hash for all of the calls. Example: + + sub do_some_merging { + my %merge_cache; + my @foo_mro = Algorithm::C3::Merge('Foo', \&get_supers, \%merge_cache); + my @bar_mro = Algorithm::C3::Merge('Bar', \&get_supers, \%merge_cache); + my @baz_mro = Algorithm::C3::Merge('Baz', \&get_supers, \%merge_cache); + my @quux_mro = Algorithm::C3::Merge('Quux', \&get_supers, \%merge_cache); + # ... + } + +CODE COVERAGE + I use Devel::Cover to test the code coverage of my tests, below is the + Devel::Cover report on this module's test suite. + + ------------------------ ------ ------ ------ ------ ------ ------ ------ + File stmt bran cond sub pod time total + ------------------------ ------ ------ ------ ------ ------ ------ ------ + Algorithm/C3.pm 100.0 100.0 100.0 100.0 100.0 100.0 100.0 + ------------------------ ------ ------ ------ ------ ------ ------ ------ + Total 100.0 100.0 100.0 100.0 100.0 100.0 100.0 + ------------------------ ------ ------ ------ ------ ------ ------ ------ + +SEE ALSO + The original Dylan paper + <http://www.webcom.com/haahr/dylan/linearization-oopsla96.html> + + The prototype Perl 6 Object Model uses C3 + <http://svn.openfoundry.org/pugs/perl5/Perl6-MetaModel/> + + Parrot now uses C3 + <http://aspn.activestate.com/ASPN/Mail/Message/perl6-internals/2746631> + <http://use.perl.org/~autrijus/journal/25768> + + Python 2.3 MRO related links + <http://www.python.org/2.3/mro.html> + <http://www.python.org/2.2.2/descrintro.html#mro> + + C3 for TinyCLOS + <http://www.call-with-current-continuation.org/eggs/c3.html> + +AUTHORS + Stevan Little, <[email protected]> + + Brandon L. Black, <[email protected]> -To install this module type the following: +COPYRIGHT AND LICENSE + Copyright 2006 by Infinity Interactive, Inc. - perl Makefile.PL - make - make test - make install + <http://www.iinteractive.com> -DEPENDENCIES - -This module requires these other modules and libraries: - - Carp - -COPYRIGHT AND LICENCE - -Copyright (C) 2006 Infinity Interactive, Inc. - -http://www.iinteractive.com - -This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. + This library is free software; you can redistribute it and/or modify it + under the same terms as Perl itself. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/lib/Algorithm/C3.pm new/Algorithm-C3-0.09/lib/Algorithm/C3.pm --- old/Algorithm-C3-0.08/lib/Algorithm/C3.pm 2009-05-28 00:50:20.000000000 +0200 +++ new/Algorithm-C3-0.09/lib/Algorithm/C3.pm 2014-03-02 00:01:25.000000000 +0100 @@ -6,7 +6,7 @@ use Carp 'confess'; -our $VERSION = '0.08'; +our $VERSION = '0.09'; sub merge { my ($root, $parent_fetcher, $cache) = @_; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/maint/Makefile.PL.include new/Algorithm-C3-0.09/maint/Makefile.PL.include --- old/Algorithm-C3-0.08/maint/Makefile.PL.include 1970-01-01 01:00:00.000000000 +0100 +++ new/Algorithm-C3-0.09/maint/Makefile.PL.include 2014-03-02 00:01:25.000000000 +0100 @@ -0,0 +1,11 @@ +BEGIN { -e 'Distar' or system("git clone git://git.shadowcat.co.uk/p5sagit/Distar.git") } +use lib 'Distar/lib'; +use Distar; +use ExtUtils::MakeMaker 6.68 (); + +author [ + 'Stevan Little <[email protected]>', + 'Brandon L. Black <[email protected]>', +]; + +1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/t/pod.t new/Algorithm-C3-0.09/t/pod.t --- old/Algorithm-C3-0.08/t/pod.t 2009-05-28 00:50:20.000000000 +0200 +++ new/Algorithm-C3-0.09/t/pod.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,11 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; - -use Test::More; - -eval "use Test::Pod 1.14"; -plan skip_all => "Test::Pod 1.14 required for testing POD" if $@; - -all_pod_files_ok(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/t/pod_coverage.t new/Algorithm-C3-0.09/t/pod_coverage.t --- old/Algorithm-C3-0.08/t/pod_coverage.t 2009-05-28 00:50:20.000000000 +0200 +++ new/Algorithm-C3-0.09/t/pod_coverage.t 1970-01-01 01:00:00.000000000 +0100 @@ -1,11 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; - -use Test::More; - -eval "use Test::Pod::Coverage 1.04"; -plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" if $@; - -all_pod_coverage_ok(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/xt/pod.t new/Algorithm-C3-0.09/xt/pod.t --- old/Algorithm-C3-0.08/xt/pod.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Algorithm-C3-0.09/xt/pod.t 2014-03-02 00:01:25.000000000 +0100 @@ -0,0 +1,11 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Test::More; + +eval "use Test::Pod 1.14"; +plan skip_all => "Test::Pod 1.14 required for testing POD" if $@; + +all_pod_files_ok(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Algorithm-C3-0.08/xt/pod_coverage.t new/Algorithm-C3-0.09/xt/pod_coverage.t --- old/Algorithm-C3-0.08/xt/pod_coverage.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Algorithm-C3-0.09/xt/pod_coverage.t 2014-03-02 00:01:25.000000000 +0100 @@ -0,0 +1,11 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Test::More; + +eval "use Test::Pod::Coverage 1.04"; +plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" if $@; + +all_pod_coverage_ok(); -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
