Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

make Module:CoreList's %deprecated a delta hash #13003

Closed
p5pRT opened this issue May 28, 2013 · 9 comments
Closed

make Module:CoreList's %deprecated a delta hash #13003

p5pRT opened this issue May 28, 2013 · 9 comments
Labels

Comments

@p5pRT
Copy link

p5pRT commented May 28, 2013

Migrated from rt.perl.org#118215 (status was 'resolved')

Searchable as RT118215$

@p5pRT
Copy link
Author

p5pRT commented May 28, 2013

From @rjbs

%Module​::CoreList​::deprecated is a map from versions to modules "deprecated" in
that version of perl. Every perl version has a full list, meaning we get
entries like this​:

  5.011001 => {
  'Class​::ISA' => '1',
  'Pod​::Plainer' => '1',
  'Shell' => '1',
  'Switch' => '1',
  },
  5.011002 => {
  'Class​::ISA' => '1',
  'Pod​::Plainer' => '1',
  'Shell' => '1',
  'Switch' => '1',
  },

For later versions with more deprecations, this gets pretty big. More
importantly, it needs to be updated versionly. Each perl version should
instead be a delta so we only need to add additions or removals when they
occur. We already have code for this, used by Module​::Corelist​:
Module​::CoreList​::TieHashDelta

Module​::CoreList​::deprecated should be set up with a delta hash.

--
rjbs

@p5pRT
Copy link
Author

p5pRT commented May 29, 2013

From @doherty

This hash tracks core module deprecations, which becomes very
verbose if listing out the deprecated modules for every perl
version. Instead, we can track the delta for each release,
using Module​::CoreList​::TieHashDelta to inflate as needed.

Fixes #118215​: https://rt-archive.perl.org/perl5//Public/Bug/Display.html?id=118215


dist/Module-CoreList/lib/Module/CoreList.pm | 604 +++++++---------------------
1 file changed, 141 insertions(+), 463 deletions(-)

@p5pRT
Copy link
Author

p5pRT commented May 29, 2013

From @doherty

0001-perl-118215-Make-Module-CoreList-deprecated-a-delta-.patch
diff --git a/dist/Module-CoreList/lib/Module/CoreList.pm b/dist/Module-CoreList/lib/Module/CoreList.pm
index 6b8bb40..0171e5d 100644
--- a/dist/Module-CoreList/lib/Module/CoreList.pm
+++ b/dist/Module-CoreList/lib/Module/CoreList.pm
@@ -8100,476 +8100,154 @@ for my $version (sort { $a <=> $b } keys %delta) {
 }
 
 %deprecated = (
-    5.011 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.011001 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.011002 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.011003 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.011004 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.011005 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.012000 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.013000 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.012001 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.013001 => {
-	'Shell'                 => '1',
-    },
-    5.013002 => {
-	'Shell'                 => '1',
-    },
-    5.013003 => {
-	'Shell'                 => '1',
-    },
-    5.013004 => {
-	'Shell'                 => '1',
-    },
-    5.012002 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.013005 => {
-	'Shell'                 => '1',
-    },
-    5.013006 => {
-	'Shell'                 => '1',
-    },
-    5.013007 => {
-	'Shell'                 => '1',
-    },
-    5.013008 => {
-	'Shell'                 => '1',
-    },
-    5.012003 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.013009 => {
-	'Shell'                 => '1',
-    },
-    5.013010 => {
-	'Shell'                 => '1',
-    },
-    5.013011 => {
-	'Shell'                 => '1',
-    },
-    5.014000 => {
-	'Shell'                 => '1',
-    },
-    5.012004 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.012005 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.014001 => {
-        'Shell'                 => '1',
-    },
+    5.011000 => {
+        changed => { map { $_ => 1 } qw/
+            Class::ISA
+            Pod::Plainer
+            Shell
+            Switch
+        /},
+    },
+    5.011001 => { delta_from => '5.011000' },
+    5.011002 => { delta_from => '5.011001' },
+    5.011003 => { delta_from => '5.011002' },
+    5.011004 => { delta_from => '5.011003' },
+    5.011005 => { delta_from => '5.011004' },
+
+    5.012000 => { delta_from => '5.011005' },
+    5.012001 => { delta_from => '5.012000' },
+    5.012002 => { delta_from => '5.012001' },
+    5.012003 => { delta_from => '5.012002' },
+    5.012004 => { delta_from => '5.012003' },
+    5.012005 => { delta_from => '5.012004' },
+
+    5.013000 => { delta_from => '5.012005' },
+    5.013001 => { delta_from => '5.013000' },
+    5.013002 => { delta_from => '5.013001' },
+    5.013003 => { delta_from => '5.013002' },
+    5.013004 => { delta_from => '5.013003' },
+    5.013005 => { delta_from => '5.013004' },
+    5.013006 => { delta_from => '5.013005' },
+    5.013007 => { delta_from => '5.013006' },
+    5.013008 => { delta_from => '5.013007' },
+    5.013009 => { delta_from => '5.013008' },
+    5.013010 => { delta_from => '5.013009' },
+    5.013011 => { delta_from => '5.013010' },
+
+    5.014000 => { delta_from => '5.013011' },
+    5.014001 => { delta_from => '5.014000' },
+    5.014002 => { delta_from => '5.014001' },
+    5.014003 => { delta_from => '5.014002' },
+    5.014004 => { delta_from => '5.014003' },
+
     5.015000 => {
-	'Devel::DProf'          => '1',
-    },
-    5.015000 => {
-    },
-    5.015001 => {
-    },
-    5.015002 => {
-    },
-    5.014002 => {
-	'Shell'                 => '1',
-    },
-    5.015003 => {
-    },
-    5.015004 => {
-    },
-    5.015005 => {
-    },
-    5.015006 => {
-    },
-    5.015007 => {
-    },
-    5.015008 => {
-    },
-    5.015009 => {
-    },
-    5.016000 => {
-    },
-    5.016001 => {
-    },
-    5.016002 => {
-    },
-    5.017000 => {
-    },
-    5.017001 => {
-    },
-    5.017002 => {
-    },
-    5.017003 => {
-    },
-    5.017004 => {
-    },
-    5.014003 => {
-	'Shell'                 => '1',
-    },
-    5.017005 => {
-    },
-    5.017006 => {
-    },
-    5.017007 => {
-    },
+        delta_from => '5.014004',
+        changed => { 'Devel::DProf' => 1 },
+    },
+    5.015001 => { delta_from => '5.015000' },
+    5.015002 => { delta_from => '5.015001' },
+    5.015003 => { delta_from => '5.015002' },
+    5.015004 => { delta_from => '5.015003' },
+    5.015005 => { delta_from => '5.015004' },
+    5.015006 => { delta_from => '5.015005' },
+    5.015007 => { delta_from => '5.015006' },
+    5.015008 => { delta_from => '5.015007' },
+    5.015009 => { delta_from => '5.015008' },
+
+    5.016000 => { delta_from => '5.015009' },
+    5.016001 => { delta_from => '5.016000' },
+    5.016002 => { delta_from => '5.016001' },
+    5.016003 => { delta_from => '5.016002' },
+
+    5.017000 => { delta_from => '5.016003' },
+    5.017001 => { delta_from => '5.017000' },
+    5.017002 => { delta_from => '5.017001' },
+    5.017003 => { delta_from => '5.017002' },
+    5.017004 => { delta_from => '5.017003' },
+    5.017005 => { delta_from => '5.017004' },
+    5.017006 => { delta_from => '5.017005' },
+    5.017007 => { delta_from => '5.017006' },
     5.017008 => {
-        'Pod::LaTeX'            => '1',
+        delta_from => '5.017007',
+        changed => { 'Pod::LaTeX' => 1 },
     },
     5.017009 => {
-        'Archive::Extract'      => '1',
-        'B::Lint'               => '1',
-        'B::Lint::Debug'        => '1',
-        'CPANPLUS'              => '1',
-        'CPANPLUS::Backend'     => '1',
-        'CPANPLUS::Backend::RV' => '1',
-        'CPANPLUS::Config'      => '1',
-        'CPANPLUS::Config::HomeEnv'=> '1',
-        'CPANPLUS::Configure'   => '1',
-        'CPANPLUS::Configure::Setup'=> '1',
-        'CPANPLUS::Dist'        => '1',
-        'CPANPLUS::Dist::Autobundle'=> '1',
-        'CPANPLUS::Dist::Base'  => '1',
-        'CPANPLUS::Dist::Build' => '1',
-        'CPANPLUS::Dist::Build::Constants'=> '1',
-        'CPANPLUS::Dist::MM'    => '1',
-        'CPANPLUS::Dist::Sample'=> '1',
-        'CPANPLUS::Error'       => '1',
-        'CPANPLUS::Internals'   => '1',
-        'CPANPLUS::Internals::Constants'=> '1',
-        'CPANPLUS::Internals::Constants::Report'=> '1',
-        'CPANPLUS::Internals::Extract'=> '1',
-        'CPANPLUS::Internals::Fetch'=> '1',
-        'CPANPLUS::Internals::Report'=> '1',
-        'CPANPLUS::Internals::Search'=> '1',
-        'CPANPLUS::Internals::Source'=> '1',
-        'CPANPLUS::Internals::Source::Memory'=> '1',
-        'CPANPLUS::Internals::Source::SQLite'=> '1',
-        'CPANPLUS::Internals::Source::SQLite::Tie'=> '1',
-        'CPANPLUS::Internals::Utils'=> '1',
-        'CPANPLUS::Internals::Utils::Autoflush'=> '1',
-        'CPANPLUS::Module'      => '1',
-        'CPANPLUS::Module::Author'=> '1',
-        'CPANPLUS::Module::Author::Fake'=> '1',
-        'CPANPLUS::Module::Checksums'=> '1',
-        'CPANPLUS::Module::Fake'=> '1',
-        'CPANPLUS::Module::Signature'=> '1',
-        'CPANPLUS::Selfupdate'  => '1',
-        'CPANPLUS::Shell'       => '1',
-        'CPANPLUS::Shell::Classic'=> '1',
-        'CPANPLUS::Shell::Default'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::CustomSource'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Remote'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Source'=> '1',
-        'Devel::InnerPackage'   => '1',
-        'Log::Message'          => '1',
-        'Log::Message::Config'  => '1',
-        'Log::Message::Handlers'=> '1',
-        'Log::Message::Item'    => '1',
-        'Log::Message::Simple'  => '1',
-        'Module::Pluggable'     => '1',
-        'Module::Pluggable::Object'=> '1',
-        'Object::Accessor'      => '1',
-        'Pod::LaTeX'            => '1',
-        'Term::UI'              => '1',
-        'Term::UI::History'     => '1',
-    },
-    5.014004 => {
-	'Shell'                 => '1',
-    },
-    5.016003 => {
-    },
-    5.017010 => {
-        'Archive::Extract'      => '1',
-        'B::Lint'               => '1',
-        'B::Lint::Debug'        => '1',
-        'CPANPLUS'              => '1',
-        'CPANPLUS::Backend'     => '1',
-        'CPANPLUS::Backend::RV' => '1',
-        'CPANPLUS::Config'      => '1',
-        'CPANPLUS::Config::HomeEnv'=> '1',
-        'CPANPLUS::Configure'   => '1',
-        'CPANPLUS::Configure::Setup'=> '1',
-        'CPANPLUS::Dist'        => '1',
-        'CPANPLUS::Dist::Autobundle'=> '1',
-        'CPANPLUS::Dist::Base'  => '1',
-        'CPANPLUS::Dist::Build' => '1',
-        'CPANPLUS::Dist::Build::Constants'=> '1',
-        'CPANPLUS::Dist::MM'    => '1',
-        'CPANPLUS::Dist::Sample'=> '1',
-        'CPANPLUS::Error'       => '1',
-        'CPANPLUS::Internals'   => '1',
-        'CPANPLUS::Internals::Constants'=> '1',
-        'CPANPLUS::Internals::Constants::Report'=> '1',
-        'CPANPLUS::Internals::Extract'=> '1',
-        'CPANPLUS::Internals::Fetch'=> '1',
-        'CPANPLUS::Internals::Report'=> '1',
-        'CPANPLUS::Internals::Search'=> '1',
-        'CPANPLUS::Internals::Source'=> '1',
-        'CPANPLUS::Internals::Source::Memory'=> '1',
-        'CPANPLUS::Internals::Source::SQLite'=> '1',
-        'CPANPLUS::Internals::Source::SQLite::Tie'=> '1',
-        'CPANPLUS::Internals::Utils'=> '1',
-        'CPANPLUS::Internals::Utils::Autoflush'=> '1',
-        'CPANPLUS::Module'      => '1',
-        'CPANPLUS::Module::Author'=> '1',
-        'CPANPLUS::Module::Author::Fake'=> '1',
-        'CPANPLUS::Module::Checksums'=> '1',
-        'CPANPLUS::Module::Fake'=> '1',
-        'CPANPLUS::Module::Signature'=> '1',
-        'CPANPLUS::Selfupdate'  => '1',
-        'CPANPLUS::Shell'       => '1',
-        'CPANPLUS::Shell::Classic'=> '1',
-        'CPANPLUS::Shell::Default'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::CustomSource'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Remote'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Source'=> '1',
-        'Devel::InnerPackage'   => '1',
-        'Log::Message'          => '1',
-        'Log::Message::Config'  => '1',
-        'Log::Message::Handlers'=> '1',
-        'Log::Message::Item'    => '1',
-        'Log::Message::Simple'  => '1',
-        'Module::Pluggable'     => '1',
-        'Module::Pluggable::Object'=> '1',
-        'Object::Accessor'      => '1',
-        'Pod::LaTeX'            => '1',
-        'Term::UI'              => '1',
-        'Term::UI::History'     => '1',
-    },
-    5.017011 => {
-        'Archive::Extract'      => '1',
-        'B::Lint'               => '1',
-        'B::Lint::Debug'        => '1',
-        'CPANPLUS'              => '1',
-        'CPANPLUS::Backend'     => '1',
-        'CPANPLUS::Backend::RV' => '1',
-        'CPANPLUS::Config'      => '1',
-        'CPANPLUS::Config::HomeEnv'=> '1',
-        'CPANPLUS::Configure'   => '1',
-        'CPANPLUS::Configure::Setup'=> '1',
-        'CPANPLUS::Dist'        => '1',
-        'CPANPLUS::Dist::Autobundle'=> '1',
-        'CPANPLUS::Dist::Base'  => '1',
-        'CPANPLUS::Dist::Build' => '1',
-        'CPANPLUS::Dist::Build::Constants'=> '1',
-        'CPANPLUS::Dist::MM'    => '1',
-        'CPANPLUS::Dist::Sample'=> '1',
-        'CPANPLUS::Error'       => '1',
-        'CPANPLUS::Internals'   => '1',
-        'CPANPLUS::Internals::Constants'=> '1',
-        'CPANPLUS::Internals::Constants::Report'=> '1',
-        'CPANPLUS::Internals::Extract'=> '1',
-        'CPANPLUS::Internals::Fetch'=> '1',
-        'CPANPLUS::Internals::Report'=> '1',
-        'CPANPLUS::Internals::Search'=> '1',
-        'CPANPLUS::Internals::Source'=> '1',
-        'CPANPLUS::Internals::Source::Memory'=> '1',
-        'CPANPLUS::Internals::Source::SQLite'=> '1',
-        'CPANPLUS::Internals::Source::SQLite::Tie'=> '1',
-        'CPANPLUS::Internals::Utils'=> '1',
-        'CPANPLUS::Internals::Utils::Autoflush'=> '1',
-        'CPANPLUS::Module'      => '1',
-        'CPANPLUS::Module::Author'=> '1',
-        'CPANPLUS::Module::Author::Fake'=> '1',
-        'CPANPLUS::Module::Checksums'=> '1',
-        'CPANPLUS::Module::Fake'=> '1',
-        'CPANPLUS::Module::Signature'=> '1',
-        'CPANPLUS::Selfupdate'  => '1',
-        'CPANPLUS::Shell'       => '1',
-        'CPANPLUS::Shell::Classic'=> '1',
-        'CPANPLUS::Shell::Default'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::CustomSource'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Remote'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Source'=> '1',
-        'Devel::InnerPackage'   => '1',
-        'Log::Message'          => '1',
-        'Log::Message::Config'  => '1',
-        'Log::Message::Handlers'=> '1',
-        'Log::Message::Item'    => '1',
-        'Log::Message::Simple'  => '1',
-        'Module::Pluggable'     => '1',
-        'Module::Pluggable::Object'=> '1',
-        'Object::Accessor'      => '1',
-        'Pod::LaTeX'            => '1',
-        'Term::UI'              => '1',
-        'Term::UI::History'     => '1',
-    },
-    5.017012 => {
-        'Archive::Extract'      => '1',
-        'B::Lint'               => '1',
-        'B::Lint::Debug'        => '1',
-        'CPANPLUS'              => '1',
-        'CPANPLUS::Backend'     => '1',
-        'CPANPLUS::Backend::RV' => '1',
-        'CPANPLUS::Config'      => '1',
-        'CPANPLUS::Config::HomeEnv'=> '1',
-        'CPANPLUS::Configure'   => '1',
-        'CPANPLUS::Configure::Setup'=> '1',
-        'CPANPLUS::Dist'        => '1',
-        'CPANPLUS::Dist::Autobundle'=> '1',
-        'CPANPLUS::Dist::Base'  => '1',
-        'CPANPLUS::Dist::Build' => '1',
-        'CPANPLUS::Dist::Build::Constants'=> '1',
-        'CPANPLUS::Dist::MM'    => '1',
-        'CPANPLUS::Dist::Sample'=> '1',
-        'CPANPLUS::Error'       => '1',
-        'CPANPLUS::Internals'   => '1',
-        'CPANPLUS::Internals::Constants'=> '1',
-        'CPANPLUS::Internals::Constants::Report'=> '1',
-        'CPANPLUS::Internals::Extract'=> '1',
-        'CPANPLUS::Internals::Fetch'=> '1',
-        'CPANPLUS::Internals::Report'=> '1',
-        'CPANPLUS::Internals::Search'=> '1',
-        'CPANPLUS::Internals::Source'=> '1',
-        'CPANPLUS::Internals::Source::Memory'=> '1',
-        'CPANPLUS::Internals::Source::SQLite'=> '1',
-        'CPANPLUS::Internals::Source::SQLite::Tie'=> '1',
-        'CPANPLUS::Internals::Utils'=> '1',
-        'CPANPLUS::Internals::Utils::Autoflush'=> '1',
-        'CPANPLUS::Module'      => '1',
-        'CPANPLUS::Module::Author'=> '1',
-        'CPANPLUS::Module::Author::Fake'=> '1',
-        'CPANPLUS::Module::Checksums'=> '1',
-        'CPANPLUS::Module::Fake'=> '1',
-        'CPANPLUS::Module::Signature'=> '1',
-        'CPANPLUS::Selfupdate'  => '1',
-        'CPANPLUS::Shell'       => '1',
-        'CPANPLUS::Shell::Classic'=> '1',
-        'CPANPLUS::Shell::Default'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::CustomSource'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Remote'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Source'=> '1',
-        'Devel::InnerPackage'   => '1',
-        'Log::Message'          => '1',
-        'Log::Message::Config'  => '1',
-        'Log::Message::Handlers'=> '1',
-        'Log::Message::Item'    => '1',
-        'Log::Message::Simple'  => '1',
-        'Module::Pluggable'     => '1',
-        'Module::Pluggable::Object'=> '1',
-        'Object::Accessor'      => '1',
-        'Pod::LaTeX'            => '1',
-        'Term::UI'              => '1',
-        'Term::UI::History'     => '1',
-    },
-    5.018000 => {
-	'Archive::Extract'      => '1',
-	'B::Lint'               => '1',
-	'B::Lint::Debug'        => '1',
-	'CPANPLUS'              => '1',
-	'CPANPLUS::Backend'     => '1',
-	'CPANPLUS::Backend::RV' => '1',
-	'CPANPLUS::Config'      => '1',
-	'CPANPLUS::Config::HomeEnv'=> '1',
-	'CPANPLUS::Configure'   => '1',
-	'CPANPLUS::Configure::Setup'=> '1',
-	'CPANPLUS::Dist'        => '1',
-	'CPANPLUS::Dist::Autobundle'=> '1',
-	'CPANPLUS::Dist::Base'  => '1',
-	'CPANPLUS::Dist::Build' => '1',
-	'CPANPLUS::Dist::Build::Constants'=> '1',
-	'CPANPLUS::Dist::MM'    => '1',
-	'CPANPLUS::Dist::Sample'=> '1',
-	'CPANPLUS::Error'       => '1',
-	'CPANPLUS::Internals'   => '1',
-	'CPANPLUS::Internals::Constants'=> '1',
-	'CPANPLUS::Internals::Constants::Report'=> '1',
-	'CPANPLUS::Internals::Extract'=> '1',
-	'CPANPLUS::Internals::Fetch'=> '1',
-	'CPANPLUS::Internals::Report'=> '1',
-	'CPANPLUS::Internals::Search'=> '1',
-	'CPANPLUS::Internals::Source'=> '1',
-	'CPANPLUS::Internals::Source::Memory'=> '1',
-	'CPANPLUS::Internals::Source::SQLite'=> '1',
-	'CPANPLUS::Internals::Source::SQLite::Tie'=> '1',
-	'CPANPLUS::Internals::Utils'=> '1',
-	'CPANPLUS::Internals::Utils::Autoflush'=> '1',
-	'CPANPLUS::Module'      => '1',
-	'CPANPLUS::Module::Author'=> '1',
-	'CPANPLUS::Module::Author::Fake'=> '1',
-	'CPANPLUS::Module::Checksums'=> '1',
-	'CPANPLUS::Module::Fake'=> '1',
-	'CPANPLUS::Module::Signature'=> '1',
-	'CPANPLUS::Selfupdate'  => '1',
-	'CPANPLUS::Shell'       => '1',
-	'CPANPLUS::Shell::Classic'=> '1',
-	'CPANPLUS::Shell::Default'=> '1',
-	'CPANPLUS::Shell::Default::Plugins::CustomSource'=> '1',
-	'CPANPLUS::Shell::Default::Plugins::Remote'=> '1',
-	'CPANPLUS::Shell::Default::Plugins::Source'=> '1',
-	'Devel::InnerPackage'   => '1',
-	'Log::Message'          => '1',
-	'Log::Message::Config'  => '1',
-	'Log::Message::Handlers'=> '1',
-	'Log::Message::Item'    => '1',
-	'Log::Message::Simple'  => '1',
-	'Module::Pluggable'     => '1',
-	'Module::Pluggable::Object'=> '1',
-	'Object::Accessor'      => '1',
-	'Pod::LaTeX'            => '1',
-	'Term::UI'              => '1',
-	'Term::UI::History'     => '1',
-    },
-    5.019000 => {
+        delta_from => '5.017008',
+        changed => { map { $_ => 1 } qw/
+            Archive::Extract
+            B::Lint
+            B::Lint::Debug
+            CPANPLUS
+            CPANPLUS::Backend
+            CPANPLUS::Backend::RV
+            CPANPLUS::Config
+            CPANPLUS::Config::HomeEnv
+            CPANPLUS::Configure
+            CPANPLUS::Configure::Setup
+            CPANPLUS::Dist
+            CPANPLUS::Dist::Autobundle
+            CPANPLUS::Dist::Base
+            CPANPLUS::Dist::Build
+            CPANPLUS::Dist::Build::Constants
+            CPANPLUS::Dist::MM
+            CPANPLUS::Dist::Sample
+            CPANPLUS::Error
+            CPANPLUS::Internals
+            CPANPLUS::Internals::Constants
+            CPANPLUS::Internals::Constants::Report
+            CPANPLUS::Internals::Extract
+            CPANPLUS::Internals::Fetch
+            CPANPLUS::Internals::Report
+            CPANPLUS::Internals::Search
+            CPANPLUS::Internals::Source
+            CPANPLUS::Internals::Source::Memory
+            CPANPLUS::Internals::Source::SQLite
+            CPANPLUS::Internals::Source::SQLite::Tie
+            CPANPLUS::Internals::Utils
+            CPANPLUS::Internals::Utils::Autoflush
+            CPANPLUS::Module
+            CPANPLUS::Module::Author
+            CPANPLUS::Module::Author::Fake
+            CPANPLUS::Module::Checksums
+            CPANPLUS::Module::Fake
+            CPANPLUS::Module::Signature
+            CPANPLUS::Selfupdate
+            CPANPLUS::Shell
+            CPANPLUS::Shell::Classic
+            CPANPLUS::Shell::Default
+            CPANPLUS::Shell::Default::Plugins::CustomSource
+            CPANPLUS::Shell::Default::Plugins::Remote
+            CPANPLUS::Shell::Default::Plugins::Source
+            Devel::InnerPackage
+            Log::Message
+            Log::Message::Config
+            Log::Message::Handlers
+            Log::Message::Item
+            Log::Message::Simple
+            Module::Pluggable
+            Module::Pluggable::Object
+            Object::Accessor
+            Term::UI
+            Term::UI::History
+        /},
     },
+    5.017010 => { delta_from => '5.017009' },
+    5.017011 => { delta_from => '5.017010' },
+    5.017012 => { delta_from => '5.017011' },
+
+    5.018000 => { delta_from => '5.017012' },
+
+    5.019000 => { delta_from => '5.018000' },
 );
 
+for my $version (sort { $a <=> $b } keys %deprecated) {
+    my $data = $deprecated{$version};
+
+    tie %{ $deprecated{$version} }, 'Module::CoreList::TieHashDelta',
+        $data->{changed}, $data->{removed},
+        $data->{delta_from} ? $deprecated{ $data->{delta_from} } : undef;
+}
+
 %upstream = (
     'App::Cpan'             => 'cpan',
     'App::Prove'            => 'cpan',

@p5pRT
Copy link
Author

p5pRT commented May 29, 2013

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Jun 10, 2013

From @rjbs

On Tue May 28 20​:10​:34 2013, mike@​mikedoherty.ca wrote​:

[a patch!]

Thanks, Mike!

We discussed this on IRC, and for the record​: it seems like this will never reset the contents as it
should. For example, 5.013001 should have one entry, but this code makes it look like it will
have quite a few more, including everything from 5.012005 as well.

When I tried to test this, things got a bit odd​:

IN BLEAD​:

  DB<11> x $Module​::CoreList​::deprecated{'5.013001'}
  0 HASH(0x7fa5dd042c18)
  'Shell' => 1

WITH THE PATCH​:

  DB<5> x $Module​::CoreList​::deprecated{'5.013001'}
  0 HASH(0x7fc043f9ec48)
  empty hash

Mike said he'd investigate.

--
rjbs

@p5pRT
Copy link
Author

p5pRT commented Jun 11, 2013

From @doherty

This hash tracks core module deprecations, which becomes very
verbose if listing out the deprecated modules for every perl
version. Instead, we can track the delta for each release,
using Module​::CoreList​::TieHashDelta to inflate as needed.

The depcrecated hash matches the current data in blead, which
might not be correct.

Fixes #118215​: https://rt-archive.perl.org/perl5//Public/Bug/Display.html?id=118215


dist/Module-CoreList/lib/Module/CoreList.pm | 669 +++++++++-------------------
1 file changed, 207 insertions(+), 462 deletions(-)

Inline Patch
diff --git a/dist/Module-CoreList/lib/Module/CoreList.pm b/dist/Module-CoreList/lib/Module/CoreList.pm
index 6b8bb40..99d69d3 100644
--- a/dist/Module-CoreList/lib/Module/CoreList.pm
+++ b/dist/Module-CoreList/lib/Module/CoreList.pm
@@ -8100,476 +8100,221 @@ for my $version (sort { $a <=> $b } keys %delta) {
 }
 
 %deprecated = (
-    5.011 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.011001 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.011002 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.011003 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.011004 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.011005 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.012000 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.013000 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.012001 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
+    5.011    => {
+        changed => { map { $_ => 1 } qw/
+            Class::ISA
+            Pod::Plainer
+            Shell
+            Switch
+        /},
+    },
+    5.011001 => { delta_from => 5.011 },
+    5.011002 => { delta_from => 5.011001 },
+    5.011003 => { delta_from => 5.011002 },
+    5.011004 => { delta_from => 5.011003 },
+    5.011005 => { delta_from => 5.011004 },
+
+    5.012    => { delta_from => 5.011005 },
+    5.012001 => { delta_from => 5.012 },
+    5.012002 => { delta_from => 5.012001 },
+    5.012003 => { delta_from => 5.012002 },
+    5.012004 => { delta_from => 5.012003 },
+    5.012005 => { delta_from => 5.012004 },
+
+    5.013    => { delta_from => 5.012005 },
     5.013001 => {
-	'Shell'                 => '1',
-    },
-    5.013002 => {
-	'Shell'                 => '1',
-    },
-    5.013003 => {
-	'Shell'                 => '1',
-    },
-    5.013004 => {
-	'Shell'                 => '1',
-    },
-    5.012002 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.013005 => {
-	'Shell'                 => '1',
-    },
-    5.013006 => {
-	'Shell'                 => '1',
-    },
-    5.013007 => {
-	'Shell'                 => '1',
-    },
-    5.013008 => {
-	'Shell'                 => '1',
-    },
-    5.012003 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.013009 => {
-	'Shell'                 => '1',
-    },
-    5.013010 => {
-	'Shell'                 => '1',
-    },
-    5.013011 => {
-	'Shell'                 => '1',
-    },
-    5.014000 => {
-	'Shell'                 => '1',
-    },
-    5.012004 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.012005 => {
-	'Class::ISA'            => '1',
-	'Pod::Plainer'          => '1',
-	'Shell'                 => '1',
-	'Switch'                => '1',
-    },
-    5.014001 => {
-        'Shell'                 => '1',
-    },
-    5.015000 => {
-	'Devel::DProf'          => '1',
-    },
-    5.015000 => {
-    },
-    5.015001 => {
-    },
-    5.015002 => {
-    },
-    5.014002 => {
-	'Shell'                 => '1',
-    },
-    5.015003 => {
-    },
-    5.015004 => {
-    },
-    5.015005 => {
-    },
-    5.015006 => {
-    },
-    5.015007 => {
-    },
-    5.015008 => {
-    },
-    5.015009 => {
-    },
-    5.016000 => {
-    },
-    5.016001 => {
-    },
-    5.016002 => {
-    },
-    5.017000 => {
-    },
-    5.017001 => {
-    },
-    5.017002 => {
-    },
-    5.017003 => {
-    },
-    5.017004 => {
-    },
-    5.014003 => {
-	'Shell'                 => '1',
-    },
-    5.017005 => {
-    },
-    5.017006 => {
-    },
-    5.017007 => {
-    },
+        delta_from => 5.013,
+        removed => { map { $_ => 1 } qw/
+            Class::ISA
+            Pod::Plainer
+            Switch
+        /},
+    },
+    5.013002 => { delta_from => 5.013001 },
+    5.013003 => { delta_from => 5.013002 },
+    5.013004 => { delta_from => 5.013003 },
+    5.013005 => { delta_from => 5.013004 },
+    5.013006 => { delta_from => 5.013005 },
+    5.013007 => { delta_from => 5.013006 },
+    5.013008 => { delta_from => 5.013007 },
+    5.013009 => { delta_from => 5.013008 },
+    5.01301  => { delta_from => 5.013009 },
+    5.013011 => { delta_from => 5.01301  },
+
+    5.014    => { delta_from => 5.013011 },
+    5.014001 => { delta_from => 5.014    },
+    5.014002 => { delta_from => 5.014001 },
+    5.014003 => { delta_from => 5.014002 },
+    5.014004 => { delta_from => 5.014003 },
+
+    5.015    => {
+        delta_from => 5.014004,
+        removed => { Shell => 1 },
+    },
+    5.015001 => { delta_from => 5.015    },
+    5.015002 => { delta_from => 5.015001 },
+    5.015003 => { delta_from => 5.015002 },
+    5.015004 => { delta_from => 5.015003 },
+    5.015005 => { delta_from => 5.015004 },
+    5.015006 => { delta_from => 5.015005 },
+    5.015007 => { delta_from => 5.015006 },
+    5.015008 => { delta_from => 5.015007 },
+    5.015009 => { delta_from => 5.015008 },
+
+    5.016    => { delta_from => 5.015009 },
+    5.016001 => { delta_from => 5.016    },
+    5.016002 => { delta_from => 5.016001 },
+    5.016003 => { delta_from => 5.016002 },
+
+    5.017    => { delta_from => 5.016003 },
+    5.017001 => { delta_from => 5.017    },
+    5.017002 => { delta_from => 5.017001 },
+    5.017003 => { delta_from => 5.017002 },
+    5.017004 => { delta_from => 5.017003 },
+    5.017005 => { delta_from => 5.017004 },
+    5.017006 => { delta_from => 5.017005 },
+    5.017007 => { delta_from => 5.017006 },
     5.017008 => {
-        'Pod::LaTeX'            => '1',
+        delta_from => 5.017007,
+        changed => { 'Pod::LaTeX' => 1 },
     },
     5.017009 => {
-        'Archive::Extract'      => '1',
-        'B::Lint'               => '1',
-        'B::Lint::Debug'        => '1',
-        'CPANPLUS'              => '1',
-        'CPANPLUS::Backend'     => '1',
-        'CPANPLUS::Backend::RV' => '1',
-        'CPANPLUS::Config'      => '1',
-        'CPANPLUS::Config::HomeEnv'=> '1',
-        'CPANPLUS::Configure'   => '1',
-        'CPANPLUS::Configure::Setup'=> '1',
-        'CPANPLUS::Dist'        => '1',
-        'CPANPLUS::Dist::Autobundle'=> '1',
-        'CPANPLUS::Dist::Base'  => '1',
-        'CPANPLUS::Dist::Build' => '1',
-        'CPANPLUS::Dist::Build::Constants'=> '1',
-        'CPANPLUS::Dist::MM'    => '1',
-        'CPANPLUS::Dist::Sample'=> '1',
-        'CPANPLUS::Error'       => '1',
-        'CPANPLUS::Internals'   => '1',
-        'CPANPLUS::Internals::Constants'=> '1',
-        'CPANPLUS::Internals::Constants::Report'=> '1',
-        'CPANPLUS::Internals::Extract'=> '1',
-        'CPANPLUS::Internals::Fetch'=> '1',
-        'CPANPLUS::Internals::Report'=> '1',
-        'CPANPLUS::Internals::Search'=> '1',
-        'CPANPLUS::Internals::Source'=> '1',
-        'CPANPLUS::Internals::Source::Memory'=> '1',
-        'CPANPLUS::Internals::Source::SQLite'=> '1',
-        'CPANPLUS::Internals::Source::SQLite::Tie'=> '1',
-        'CPANPLUS::Internals::Utils'=> '1',
-        'CPANPLUS::Internals::Utils::Autoflush'=> '1',
-        'CPANPLUS::Module'      => '1',
-        'CPANPLUS::Module::Author'=> '1',
-        'CPANPLUS::Module::Author::Fake'=> '1',
-        'CPANPLUS::Module::Checksums'=> '1',
-        'CPANPLUS::Module::Fake'=> '1',
-        'CPANPLUS::Module::Signature'=> '1',
-        'CPANPLUS::Selfupdate'  => '1',
-        'CPANPLUS::Shell'       => '1',
-        'CPANPLUS::Shell::Classic'=> '1',
-        'CPANPLUS::Shell::Default'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::CustomSource'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Remote'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Source'=> '1',
-        'Devel::InnerPackage'   => '1',
-        'Log::Message'          => '1',
-        'Log::Message::Config'  => '1',
-        'Log::Message::Handlers'=> '1',
-        'Log::Message::Item'    => '1',
-        'Log::Message::Simple'  => '1',
-        'Module::Pluggable'     => '1',
-        'Module::Pluggable::Object'=> '1',
-        'Object::Accessor'      => '1',
-        'Pod::LaTeX'            => '1',
-        'Term::UI'              => '1',
-        'Term::UI::History'     => '1',
+        delta_from => 5.017008,
+        changed => { map { $_ => 1 } qw/
+            Archive::Extract
+            B::Lint
+            B::Lint::Debug
+            CPANPLUS
+            CPANPLUS::Backend
+            CPANPLUS::Backend::RV
+            CPANPLUS::Config
+            CPANPLUS::Config::HomeEnv
+            CPANPLUS::Configure
+            CPANPLUS::Configure::Setup
+            CPANPLUS::Dist
+            CPANPLUS::Dist::Autobundle
+            CPANPLUS::Dist::Base
+            CPANPLUS::Dist::Build
+            CPANPLUS::Dist::Build::Constants
+            CPANPLUS::Dist::MM
+            CPANPLUS::Dist::Sample
+            CPANPLUS::Error
+            CPANPLUS::Internals
+            CPANPLUS::Internals::Constants
+            CPANPLUS::Internals::Constants::Report
+            CPANPLUS::Internals::Extract
+            CPANPLUS::Internals::Fetch
+            CPANPLUS::Internals::Report
+            CPANPLUS::Internals::Search
+            CPANPLUS::Internals::Source
+            CPANPLUS::Internals::Source::Memory
+            CPANPLUS::Internals::Source::SQLite
+            CPANPLUS::Internals::Source::SQLite::Tie
+            CPANPLUS::Internals::Utils
+            CPANPLUS::Internals::Utils::Autoflush
+            CPANPLUS::Module
+            CPANPLUS::Module::Author
+            CPANPLUS::Module::Author::Fake
+            CPANPLUS::Module::Checksums
+            CPANPLUS::Module::Fake
+            CPANPLUS::Module::Signature
+            CPANPLUS::Selfupdate
+            CPANPLUS::Shell
+            CPANPLUS::Shell::Classic
+            CPANPLUS::Shell::Default
+            CPANPLUS::Shell::Default::Plugins::CustomSource
+            CPANPLUS::Shell::Default::Plugins::Remote
+            CPANPLUS::Shell::Default::Plugins::Source
+            Devel::InnerPackage
+            Log::Message
+            Log::Message::Config
+            Log::Message::Handlers
+            Log::Message::Item
+            Log::Message::Simple
+            Module::Pluggable
+            Module::Pluggable::Object
+            Object::Accessor
+            Term::UI
+            Term::UI::History
+        /},
     },
-    5.014004 => {
-	'Shell'                 => '1',
-    },
-    5.016003 => {
-    },
-    5.017010 => {
-        'Archive::Extract'      => '1',
-        'B::Lint'               => '1',
-        'B::Lint::Debug'        => '1',
-        'CPANPLUS'              => '1',
-        'CPANPLUS::Backend'     => '1',
-        'CPANPLUS::Backend::RV' => '1',
-        'CPANPLUS::Config'      => '1',
-        'CPANPLUS::Config::HomeEnv'=> '1',
-        'CPANPLUS::Configure'   => '1',
-        'CPANPLUS::Configure::Setup'=> '1',
-        'CPANPLUS::Dist'        => '1',
-        'CPANPLUS::Dist::Autobundle'=> '1',
-        'CPANPLUS::Dist::Base'  => '1',
-        'CPANPLUS::Dist::Build' => '1',
-        'CPANPLUS::Dist::Build::Constants'=> '1',
-        'CPANPLUS::Dist::MM'    => '1',
-        'CPANPLUS::Dist::Sample'=> '1',
-        'CPANPLUS::Error'       => '1',
-        'CPANPLUS::Internals'   => '1',
-        'CPANPLUS::Internals::Constants'=> '1',
-        'CPANPLUS::Internals::Constants::Report'=> '1',
-        'CPANPLUS::Internals::Extract'=> '1',
-        'CPANPLUS::Internals::Fetch'=> '1',
-        'CPANPLUS::Internals::Report'=> '1',
-        'CPANPLUS::Internals::Search'=> '1',
-        'CPANPLUS::Internals::Source'=> '1',
-        'CPANPLUS::Internals::Source::Memory'=> '1',
-        'CPANPLUS::Internals::Source::SQLite'=> '1',
-        'CPANPLUS::Internals::Source::SQLite::Tie'=> '1',
-        'CPANPLUS::Internals::Utils'=> '1',
-        'CPANPLUS::Internals::Utils::Autoflush'=> '1',
-        'CPANPLUS::Module'      => '1',
-        'CPANPLUS::Module::Author'=> '1',
-        'CPANPLUS::Module::Author::Fake'=> '1',
-        'CPANPLUS::Module::Checksums'=> '1',
-        'CPANPLUS::Module::Fake'=> '1',
-        'CPANPLUS::Module::Signature'=> '1',
-        'CPANPLUS::Selfupdate'  => '1',
-        'CPANPLUS::Shell'       => '1',
-        'CPANPLUS::Shell::Classic'=> '1',
-        'CPANPLUS::Shell::Default'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::CustomSource'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Remote'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Source'=> '1',
-        'Devel::InnerPackage'   => '1',
-        'Log::Message'          => '1',
-        'Log::Message::Config'  => '1',
-        'Log::Message::Handlers'=> '1',
-        'Log::Message::Item'    => '1',
-        'Log::Message::Simple'  => '1',
-        'Module::Pluggable'     => '1',
-        'Module::Pluggable::Object'=> '1',
-        'Object::Accessor'      => '1',
-        'Pod::LaTeX'            => '1',
-        'Term::UI'              => '1',
-        'Term::UI::History'     => '1',
-    },
-    5.017011 => {
-        'Archive::Extract'      => '1',
-        'B::Lint'               => '1',
-        'B::Lint::Debug'        => '1',
-        'CPANPLUS'              => '1',
-        'CPANPLUS::Backend'     => '1',
-        'CPANPLUS::Backend::RV' => '1',
-        'CPANPLUS::Config'      => '1',
-        'CPANPLUS::Config::HomeEnv'=> '1',
-        'CPANPLUS::Configure'   => '1',
-        'CPANPLUS::Configure::Setup'=> '1',
-        'CPANPLUS::Dist'        => '1',
-        'CPANPLUS::Dist::Autobundle'=> '1',
-        'CPANPLUS::Dist::Base'  => '1',
-        'CPANPLUS::Dist::Build' => '1',
-        'CPANPLUS::Dist::Build::Constants'=> '1',
-        'CPANPLUS::Dist::MM'    => '1',
-        'CPANPLUS::Dist::Sample'=> '1',
-        'CPANPLUS::Error'       => '1',
-        'CPANPLUS::Internals'   => '1',
-        'CPANPLUS::Internals::Constants'=> '1',
-        'CPANPLUS::Internals::Constants::Report'=> '1',
-        'CPANPLUS::Internals::Extract'=> '1',
-        'CPANPLUS::Internals::Fetch'=> '1',
-        'CPANPLUS::Internals::Report'=> '1',
-        'CPANPLUS::Internals::Search'=> '1',
-        'CPANPLUS::Internals::Source'=> '1',
-        'CPANPLUS::Internals::Source::Memory'=> '1',
-        'CPANPLUS::Internals::Source::SQLite'=> '1',
-        'CPANPLUS::Internals::Source::SQLite::Tie'=> '1',
-        'CPANPLUS::Internals::Utils'=> '1',
-        'CPANPLUS::Internals::Utils::Autoflush'=> '1',
-        'CPANPLUS::Module'      => '1',
-        'CPANPLUS::Module::Author'=> '1',
-        'CPANPLUS::Module::Author::Fake'=> '1',
-        'CPANPLUS::Module::Checksums'=> '1',
-        'CPANPLUS::Module::Fake'=> '1',
-        'CPANPLUS::Module::Signature'=> '1',
-        'CPANPLUS::Selfupdate'  => '1',
-        'CPANPLUS::Shell'       => '1',
-        'CPANPLUS::Shell::Classic'=> '1',
-        'CPANPLUS::Shell::Default'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::CustomSource'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Remote'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Source'=> '1',
-        'Devel::InnerPackage'   => '1',
-        'Log::Message'          => '1',
-        'Log::Message::Config'  => '1',
-        'Log::Message::Handlers'=> '1',
-        'Log::Message::Item'    => '1',
-        'Log::Message::Simple'  => '1',
-        'Module::Pluggable'     => '1',
-        'Module::Pluggable::Object'=> '1',
-        'Object::Accessor'      => '1',
-        'Pod::LaTeX'            => '1',
-        'Term::UI'              => '1',
-        'Term::UI::History'     => '1',
-    },
-    5.017012 => {
-        'Archive::Extract'      => '1',
-        'B::Lint'               => '1',
-        'B::Lint::Debug'        => '1',
-        'CPANPLUS'              => '1',
-        'CPANPLUS::Backend'     => '1',
-        'CPANPLUS::Backend::RV' => '1',
-        'CPANPLUS::Config'      => '1',
-        'CPANPLUS::Config::HomeEnv'=> '1',
-        'CPANPLUS::Configure'   => '1',
-        'CPANPLUS::Configure::Setup'=> '1',
-        'CPANPLUS::Dist'        => '1',
-        'CPANPLUS::Dist::Autobundle'=> '1',
-        'CPANPLUS::Dist::Base'  => '1',
-        'CPANPLUS::Dist::Build' => '1',
-        'CPANPLUS::Dist::Build::Constants'=> '1',
-        'CPANPLUS::Dist::MM'    => '1',
-        'CPANPLUS::Dist::Sample'=> '1',
-        'CPANPLUS::Error'       => '1',
-        'CPANPLUS::Internals'   => '1',
-        'CPANPLUS::Internals::Constants'=> '1',
-        'CPANPLUS::Internals::Constants::Report'=> '1',
-        'CPANPLUS::Internals::Extract'=> '1',
-        'CPANPLUS::Internals::Fetch'=> '1',
-        'CPANPLUS::Internals::Report'=> '1',
-        'CPANPLUS::Internals::Search'=> '1',
-        'CPANPLUS::Internals::Source'=> '1',
-        'CPANPLUS::Internals::Source::Memory'=> '1',
-        'CPANPLUS::Internals::Source::SQLite'=> '1',
-        'CPANPLUS::Internals::Source::SQLite::Tie'=> '1',
-        'CPANPLUS::Internals::Utils'=> '1',
-        'CPANPLUS::Internals::Utils::Autoflush'=> '1',
-        'CPANPLUS::Module'      => '1',
-        'CPANPLUS::Module::Author'=> '1',
-        'CPANPLUS::Module::Author::Fake'=> '1',
-        'CPANPLUS::Module::Checksums'=> '1',
-        'CPANPLUS::Module::Fake'=> '1',
-        'CPANPLUS::Module::Signature'=> '1',
-        'CPANPLUS::Selfupdate'  => '1',
-        'CPANPLUS::Shell'       => '1',
-        'CPANPLUS::Shell::Classic'=> '1',
-        'CPANPLUS::Shell::Default'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::CustomSource'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Remote'=> '1',
-        'CPANPLUS::Shell::Default::Plugins::Source'=> '1',
-        'Devel::InnerPackage'   => '1',
-        'Log::Message'          => '1',
-        'Log::Message::Config'  => '1',
-        'Log::Message::Handlers'=> '1',
-        'Log::Message::Item'    => '1',
-        'Log::Message::Simple'  => '1',
-        'Module::Pluggable'     => '1',
-        'Module::Pluggable::Object'=> '1',
-        'Object::Accessor'      => '1',
-        'Pod::LaTeX'            => '1',
-        'Term::UI'              => '1',
-        'Term::UI::History'     => '1',
-    },
-    5.018000 => {
-	'Archive::Extract'      => '1',
-	'B::Lint'               => '1',
-	'B::Lint::Debug'        => '1',
-	'CPANPLUS'              => '1',
-	'CPANPLUS::Backend'     => '1',
-	'CPANPLUS::Backend::RV' => '1',
-	'CPANPLUS::Config'      => '1',
-	'CPANPLUS::Config::HomeEnv'=> '1',
-	'CPANPLUS::Configure'   => '1',
-	'CPANPLUS::Configure::Setup'=> '1',
-	'CPANPLUS::Dist'        => '1',
-	'CPANPLUS::Dist::Autobundle'=> '1',
-	'CPANPLUS::Dist::Base'  => '1',
-	'CPANPLUS::Dist::Build' => '1',
-	'CPANPLUS::Dist::Build::Constants'=> '1',
-	'CPANPLUS::Dist::MM'    => '1',
-	'CPANPLUS::Dist::Sample'=> '1',
-	'CPANPLUS::Error'       => '1',
-	'CPANPLUS::Internals'   => '1',
-	'CPANPLUS::Internals::Constants'=> '1',
-	'CPANPLUS::Internals::Constants::Report'=> '1',
-	'CPANPLUS::Internals::Extract'=> '1',
-	'CPANPLUS::Internals::Fetch'=> '1',
-	'CPANPLUS::Internals::Report'=> '1',
-	'CPANPLUS::Internals::Search'=> '1',
-	'CPANPLUS::Internals::Source'=> '1',
-	'CPANPLUS::Internals::Source::Memory'=> '1',
-	'CPANPLUS::Internals::Source::SQLite'=> '1',
-	'CPANPLUS::Internals::Source::SQLite::Tie'=> '1',
-	'CPANPLUS::Internals::Utils'=> '1',
-	'CPANPLUS::Internals::Utils::Autoflush'=> '1',
-	'CPANPLUS::Module'      => '1',
-	'CPANPLUS::Module::Author'=> '1',
-	'CPANPLUS::Module::Author::Fake'=> '1',
-	'CPANPLUS::Module::Checksums'=> '1',
-	'CPANPLUS::Module::Fake'=> '1',
-	'CPANPLUS::Module::Signature'=> '1',
-	'CPANPLUS::Selfupdate'  => '1',
-	'CPANPLUS::Shell'       => '1',
-	'CPANPLUS::Shell::Classic'=> '1',
-	'CPANPLUS::Shell::Default'=> '1',
-	'CPANPLUS::Shell::Default::Plugins::CustomSource'=> '1',
-	'CPANPLUS::Shell::Default::Plugins::Remote'=> '1',
-	'CPANPLUS::Shell::Default::Plugins::Source'=> '1',
-	'Devel::InnerPackage'   => '1',
-	'Log::Message'          => '1',
-	'Log::Message::Config'  => '1',
-	'Log::Message::Handlers'=> '1',
-	'Log::Message::Item'    => '1',
-	'Log::Message::Simple'  => '1',
-	'Module::Pluggable'     => '1',
-	'Module::Pluggable::Object'=> '1',
-	'Object::Accessor'      => '1',
-	'Pod::LaTeX'            => '1',
-	'Term::UI'              => '1',
-	'Term::UI::History'     => '1',
-    },
-    5.019000 => {
+    5.01701  => { delta_from => 5.017009 },
+    5.017011 => { delta_from => 5.01701  },
+    5.017012 => { delta_from => 5.017011 },
+
+    5.018    => { delta_from => 5.017012 },
+
+    5.019    => {
+        delta_from => 5.018,
+        removed => { map { $_ => 1 } qw/
+            Archive::Extract
+            B::Lint
+            B::Lint::Debug
+            CPANPLUS
+            CPANPLUS::Backend
+            CPANPLUS::Backend::RV
+            CPANPLUS::Config
+            CPANPLUS::Config::HomeEnv
+            CPANPLUS::Configure
+            CPANPLUS::Configure::Setup
+            CPANPLUS::Dist
+            CPANPLUS::Dist::Autobundle
+            CPANPLUS::Dist::Base
+            CPANPLUS::Dist::Build
+            CPANPLUS::Dist::Build::Constants
+            CPANPLUS::Dist::MM
+            CPANPLUS::Dist::Sample
+            CPANPLUS::Error
+            CPANPLUS::Internals
+            CPANPLUS::Internals::Constants
+            CPANPLUS::Internals::Constants::Report
+            CPANPLUS::Internals::Extract
+            CPANPLUS::Internals::Fetch
+            CPANPLUS::Internals::Report
+            CPANPLUS::Internals::Search
+            CPANPLUS::Internals::Source
+            CPANPLUS::Internals::Source::Memory
+            CPANPLUS::Internals::Source::SQLite
+            CPANPLUS::Internals::Source::SQLite::Tie
+            CPANPLUS::Internals::Utils
+            CPANPLUS::Internals::Utils::Autoflush
+            CPANPLUS::Module
+            CPANPLUS::Module::Author
+            CPANPLUS::Module::Author::Fake
+            CPANPLUS::Module::Checksums
+            CPANPLUS::Module::Fake
+            CPANPLUS::Module::Signature
+            CPANPLUS::Selfupdate
+            CPANPLUS::Shell
+            CPANPLUS::Shell::Classic
+            CPANPLUS::Shell::Default
+            CPANPLUS::Shell::Default::Plugins::CustomSource
+            CPANPLUS::Shell::Default::Plugins::Remote
+            CPANPLUS::Shell::Default::Plugins::Source
+            Devel::InnerPackage
+            Log::Message
+            Log::Message::Config
+            Log::Message::Handlers
+            Log::Message::Item
+            Log::Message::Simple
+            Module::Pluggable
+            Module::Pluggable::Object
+            Object::Accessor
+            Pod::LaTeX
+            Term::UI
+            Term::UI::History
+        /}
     },
 );
 
+for my $version (sort { $a <=> $b } keys %deprecated) {
+    my $data = $deprecated{$version};
+
+    tie %{ $deprecated{$version} }, 'Module::CoreList::TieHashDelta',
+        $data->{changed}, $data->{removed},
+        $data->{delta_from} ? $deprecated{ $data->{delta_from} } : undef;
+}
+
 %upstream = (
     'App::Cpan'             => 'cpan',
     'App::Prove'            => 'cpan',
-- 
1.8.3

@p5pRT
Copy link
Author

p5pRT commented Jun 12, 2013

From @rjbs

Thanks, applied as 5ff416f

I applies some more work on top of that to bring in an omission that had been fixed between
your patch and later blead. I also updated Porting/corelist.pl so that updating the corelist file
will create new delta-style entries instead of bulk updates. Testing this by hand worked okay.

Welcome to the perl AUTHORS file, Mike!

--
rjbs

@p5pRT
Copy link
Author

p5pRT commented Jun 12, 2013

From [Unknown Contact. See original ticket]

Thanks, applied as 5ff416f

I applies some more work on top of that to bring in an omission that had been fixed between
your patch and later blead. I also updated Porting/corelist.pl so that updating the corelist file
will create new delta-style entries instead of bulk updates. Testing this by hand worked okay.

Welcome to the perl AUTHORS file, Mike!

--
rjbs

@p5pRT
Copy link
Author

p5pRT commented Jun 12, 2013

@rjbs - Status changed from 'open' to 'resolved'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant