[prev in list] [next in list] [prev in thread] [next in thread]
List: perl-module-build
Subject: Bootstrap problem in new_from_file()
From: <jpeacock () rowman ! com>
Date: 2006-12-25 21:22:21
Message-ID: 4daded86af4d61575aecdae2e9bd4afb () localhost
[Download RAW message or body]
Something came up on the SVK list that eventually boiled down to a problem with how \
new_from_file() handles $VERSION resolution. I'm not sure yet how to fix it, but I \
wanted to document it first, so maybe someone else will have a good idea how to fix \
it for good.
For example, create these three modules (each package in a different file):
--------------------------------
package My::MainModule::Version;
use version; our $VERSION = qv('2.0.0');
--------------------------------
package My::MainModule;
use My::Deep::Version; our $VERSION = $My::Deep::Version::VERSION;
--------------------------------
package My::MainModule::Other;
use My::Deep::Version; our $VERSION = $My::Deep::Version::VERSION;
--------------------------------
What happens is that when generating the META.yml for My::MainModule, the provides \
hash will display module versions:
1) as empty values iif the My::MainModule::Version has never been installed;
2) as the currently installed $VERSION if My::MainModule::Version _has_ been \
installed in the past.
The problem is that new_from_file is too careful and doesn't load the new \
My::MainModule::Version while eval'ing the other modules which depend on it. This \
is, to say the least, counter-intuitive. The workaround for module authors is to \
install the new release, then regenerate the META.yml, which will now contain the \
"new" $VERSION (which is to say the installed one)...
John
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic